所以每个人都说会话有安全隐患,我想知道这些风险是什么?黑客可以用会话做什么?
这不是要知道如何避免攻击,我想知道黑客是如何做到的,以及他们在做什么。
我谈到PHP SESSIONS
。
答案 0 :(得分:18)
答案 1 :(得分:4)
sAc的答案非常好。但是,不要因此而排除“会话”。
我已经成功部署了自定义会话,其中包括修复劫持,密码撤销(md5 /彩虹)和(如果使用正确)会话固定。
通过“成功部署”,我的意思是通过渗透测试,(当然)实际上比传统测试更好。
没有“秘密”或模糊的安全;基本上,它为每个用户帐户生成一个随机(和数据库方式唯一)数字(实际上是我的情况下的guid),并将guid +用户名存储为普通方法(而不是用户名+哈希/盐渍密码)。接下来,它将此guid绑定到用户的IP地址。并非绝对可靠,但使用guid和per-ip已经是对当前会话系统的改进。当然,在特定目标之后会出现漏洞(例如ip欺骗+被劫持的guid和用户名)。但总的来说,这是一种更好的选择。
答案 2 :(得分:2)
以下是关于该主题的良好讨论:http://phpsec.org/projects/guide/4.html
答案 3 :(得分:2)
最大的风险是,如果IP与会话无关,并且接受会话ID而不验证它们来自启动它们的IP(或至少是同一子网中的IP)。这允许某人发送链接到已经启动的会话,其中不知情的欺骗可能需要登录。这样做,SESSION被认为已登录 - 以及发送链接的黑客(已经拥有会话ID的黑客) )可以访问我们的rube的帐户。或者它可能以相反的方式发生,用户已经登录并且没有启用cookie,因此PHPSESSID值存储在每个链接中。如果用户将链接粘贴给某人,他们也会有效地粘贴他们对该网站的访问权。
为了防止这种情况,一个体面的网站将避免开始会话,直到有一些东西存储在其中,并跟踪会话的目的IP。为了利用它,攻击者将寻找在主页的每个链接中发送PHPSESSID查询字符串值的站点,或者在索引页面上发送一个类似命名的cookie。
答案 4 :(得分:0)
PHP会话使用会话标识符,haxxors可以尝试所有可能的标识符,只需进行一些有效的变更即可。此外,这些标识符存储在cookie中并且可以被截获。第三种可能性是PHP可能是错误的并且创建具有相同标识符的两个会话。此外,会话数据存储在磁盘上的文件中,该文件是不安全的。相反,数据库需要密码。
实际上不可能阻止前两个原因,但第三个和第四个原因可以。例如,将会话数据存储在数据库中。