为了账号安全,请及时绑定邮箱和手机立即绑定

防止会话劫持的最佳方法是什么?

/ 猿问

防止会话劫持的最佳方法是什么?

HUWWW 2019-07-19 16:03:31

防止会话劫持的最佳方法是什么?

具体而言,这是在使用客户端会话cookie标识服务器上的会话时使用的。

是否对整个网站使用SSL/HTTPS加密的最佳解决方案,并且您有最好的保证:在中间攻击中的任何人都不能嗅到现有的客户端会话cookie?

也许第二个最好的方法是对存储在会话cookie中的会话值本身使用某种加密?

如果恶意用户对机器具有物理访问权限,他们仍然可以查看文件系统来检索有效的会话cookie并使用它劫持会话?



查看完整描述

3 回答

?
烧仙草VB

加密会话值将产生零效果。会话cookie已经是一个任意值,加密它只会生成另一个可以嗅探的任意值。

唯一真正的解决办法是HTTPS。如果您不想在您的整个站点上执行SSL(可能您有性能问题),您可能只需要使用SSL来保护敏感区域。要做到这一点,首先要确保您的登录页面是HTTPS。当用户登录时,除了常规会话cookie之外,还设置一个安全cookie(这意味着浏览器只能通过SSL链接传输它)。然后,当用户访问您的“敏感”区域之一时,将其重定向到HTTPS,并检查是否存在该安全cookie。一个真正的用户将拥有它,会话劫机者不会。


查看完整回答
反对 回复 2019-07-19
?
临摹微笑

你有没有考虑过读一本关于PHP安全性的书?强烈推荐。

对于非SSL认证的站点,我已经成功地使用了以下方法。

  1. DIS-允许同一个帐户下的多个会话,确保不只是通过IP地址来检查。而是检查登录时生成的令牌,该令牌与数据库中的用户会话以及IP地址、HTTP_USER_agent等一起存储

  2. 使用基于关系的超链接生成链接(例如。http:/example.com/secure.php?Token=2349df98sdf98a9asdf8Fas98df8)在页面重定向时,随机生成的令牌对应于请求的页。

    • 在重新加载时,将执行几次检查。
    • 始发IP地址
    • http_user_agent
    • 会话令牌
    • 你说对了。
  3. 短寿命会话身份验证cookie。如前所述,包含安全字符串的cookie是一个好主意,它是对会话有效性的直接引用之一。使其每x分钟过期一次,重新发出该令牌,并与新数据重新同步会话。如果数据中有任何错误匹配,则要么将用户注销,要么让他们重新对其会话进行身份验证。

我并不是这个问题的专家,我在这个特定的话题上有过一些经验,希望其中的一些能对其他人有所帮助。


查看完整回答
反对 回复 2019-07-19
  • 3 回答
  • 0 关注
  • 646 浏览
我要回答
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信