如何保护会话防盗?

简单测试:

  • 在一台机器上,我登录到网站(https)
  • 我进入了不同机器上的同一页面(未登录)
  • 我在第二台机器的标题中切换session_id - 从第一台机器开始
  • 在第二台机器上,我得到了第一台机器 - 我登录,可以轻松浏览其数据等。
  • 如何保护会话(也许csrf令牌)防盗?


  • 确保你的会话密钥是不可猜测的。 一个GUID / UUID在这里可以正常工作(或更好的,散列加密随机数发生器的输出)。
  • 确保Id永远不会以纯文本形式传输(使用SSL)
  • 频繁更新您的会话ID(例如每5分钟左右说一次)。
  • 通过这样做,攻击者应该不可能拦截会话ID。 使用安全的Cookies也是一个好主意。 这将防止cookie被发送用于非安全资源(例如,通过不需要认证的http加载图像/ css)

    您可以选择尝试将会话绑定到IP地址,但这不是一个完美的解决方案。 它无法抵御与用户位于同一NAT后面的攻击者,并且可能无法验证拥有多条通往互联网的有效用户。

    澄清:你将永远能够看到你自己的会话ID。 诀窍是确保没有人能看到它。 这实际上是一个临时密码。 大多数浏览器(可逆)在磁盘上对安全cookie进行加密。 它再次通过SSL传输到服务器进行加密。

    假设你正在与正确的服务器交谈[一个不同的问题],攻击者可以获取会话ID的唯一方法是在你的机器上安装恶意软件或破坏Ssl。

    对id的频繁更改意味着攻击者在重新开始之前只会有一个短窗口。

    链接地址: http://www.djcxy.com/p/21745.html

    上一篇: How to protect session against theft?

    下一篇: nodejs proxy server with HTTPS support