7天入门php-会话和安全

一、常见会话攻击类型

截了几张图,大致了解会话攻击:





图片及文章:http://www.acros.si/papers/session_fixation.pdf


二、INI配置管理会话安全

1、session.cookie_lifetime=0。

设置关闭浏览器时即删除cookie,从而删除通过cookie存储的会话ID ,防止被他人利用。大部分应用应将此项设置为0,如需实现自动登录,最好不使用设置会话ID 的长期保留的方式。

2、session.use_cookies=On 并且 session.use_only_cookies=On。 

优选方案,尽可能只使用cookie来管理会话ID ,而不是url。而事实上大多数应用也确实只应用cookie管理会话ID 。

3、session.use_strict_mode=On。php 5.5.2开始。

此设置防止会话模块使用未初始化的会话ID 。即PHP 会话模块只接受自己创建的会话ID ,而不能接受用户提供的会话ID ,从而防止JavaScript等注入会话ID 进行攻击的情况发生。

4、session.cookie_httponly=On。

禁止JavaScript访问会话cookie。

5、session.cookie_secure=On。

仅允许在HTTPS 协议下访问会话ID cookie。

6、session.gc_maxlifetime=[尽可能的小]。

gc(Garbage Clear),调整 session.gc_probability 和 session.gc_divisor 设置项 可以使得过期的会话数据在适当的周期内被删除。但会话ID 的安全不能仅依赖于此设置。

7、session.use_trans_sid=Off。

禁用透明会话ID 管理。可规避会话ID 注入和泄露的风险。此选项的INI说明为:

Use of trans sid may risk your users security.
Use this option with caution.
 - User may send URL contains active session ID  to other person via. email/irc/etc.
 - URL that contains active session ID may be stored in publicly accessible computer.
 - User may access your site with the same session ID always using URL stored in browser's history or bookmarks.

(究竟透明会话ID 管理开启与否的区别自己还不清楚)

8、session.referer_check=[你的源 URL] 。

当启用 session.use_trans_sid 设置项时, 建议尽可能的联合使用此设置项来降低会话 ID 注入的风险。 假设你的站点是 http://example.com/, 请将此设置项置为 http://example.com/。 需要注意的,如果使用 HTTPS , 浏览器将不会发送 referrer 请求头, 因此,从安全角度考虑,此设置项并不总是可信赖的。

9、session.cache_limiter=nocache。 

确保对于已经认证的会话, 其 HTTP 内容不被缓存。 你应仅允许缓存公开的内容, 否则将面临内容暴露的风险。 如果 HTTP 内容中不包含安全信息或敏感数据,可以使用“private”。 注意,“private”可能会导致客户端缓存私有数据。 仅在 HTTP 内容中不包含任何私有数据的时候,可以使用“public”。

10、session.hash_function="sha256"。 

高强度的散列函数可以产生高强度的会话 ID。 虽然即使是使用 MD5 散列算法,要找到相同的散列值也是非常不易的, 但是开发人员还是应该选择 SHA-2 或者更高的散列算法, 例如可以使用 sha384 或者 sha512。

更多具体内容后面慢慢完善。



参考图片及文章地址:

1、http://www.acros.si/papers/session_fixation.pdf:图片来源,文章详细讲解了常见会话攻击。

2、http://php.net/manual/zh/session.security.php



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值