gpt4 book ai didi

php - 另一个角度的 session 劫持

转载 作者:可可西里 更新时间:2023-10-31 22:51:07 30 4
gpt4 key购买 nike

我一直在研究一套安全的登录/门户类型的工具,通用代码没有 SQL 注入(inject)、XSS 等,我有很多东西可以阻止 session 劫持。

  1. 为每个页面重新生成 session ID
  2. 将用户的IP与登录时的IP进行比较
  3. 将用户的 user_agent 与登录时的代理进行比较
  4. session 超时时间短

等等

我已尽我所能阻止劫持,但我仍然找到了可能发生劫持的情况,并想知道是否有人有任何想法。

想象这样一种情况,您有 2 个用户在执行 SNAT/DNAT 的防火墙后面,所以他们都来自同一个 IP。它们都是由同一个地方提供的相同机器。一个连接到站点并登录,另一个复制 PHPSESSID cookie 并可以简单地窃取 session 。

这可能听起来像是一个极端的例子,但这与我的工作场所非常相似,每个人都在防火墙后面所以看起来是同一个 IP,并且所有机器都由 IT 团队管理/提供,所以所有人都有相同版本的浏览器、操作系统等。

我正在尝试考虑另一种方式(服务器端)来阻止劫持或进一步减少劫持,我正在考虑将 token 嵌入到每个 URL(针对每个页面进行更改)并进行检查。

我正在寻找想法或建议,如果你想提供代码或示例,欢迎你,但我更感兴趣的是开箱即​​用的想法或对我的代币想法的评论。

最佳答案

强制一切都使用 HTTPS。

我认为您指的是网络中的用户嗅探 cookie 的被动攻击。为此,您不需要 HTTPS。当双方确定他们正在与谁交谈时,有几个选项就足够了(例如,您可以先进行 DH 交换,服务器将加密客户端将在下一个请求中使用的 token ......),但事实并非如此沿着这条路走下去是值得的。

如果用户最初输入的是非 https 地址,主动攻击仍然是可能的,但在这种情况下您无能为力。将来,一旦用户通过 HTTP strict transport security. 与您的网站建立了一个纯粹的连接,您就可以阻止此类攻击。 .

关于php - 另一个角度的 session 劫持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592763/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com