【发布时间】:2016-03-02 17:15:01
【问题描述】:
我目前正在尝试想办法让用户在一定时间内保持登录状态。我遇到了网站cookies的使用。以我的开发环境为例,PHP.
addcookie('name', 'value', time() + 3600, '/');
我知道您可以为存储在数据库中的每个用户生成一个大的唯一密钥作为值,以供安全参考,然后真正操纵用户的唯一方法是使用 Cross-网站脚本。
我很想知道,由于 addcookie() 中的最后一个参数 - 示例中出现了 / - 是否有人可以设置自己的域并实际添加自己的 cookie另一个域?
我不确定是否在在数据库中查询之前删除密钥,因为我不确定此漏洞是否存在 - 或类似的漏洞。
任何参考都很好,因为我觉得安全性很有趣,尤其是未经授权的访问预防。
我只知道关于 Cookie 中毒的任何事情,并且很想了解更多以及如何防止事情发生或构建防止攻击的基础设施。
编辑:我不是在问如何Secure 任何东西,只是 Cookie Poisoning 是什么,也许是可以用来阻止人们真正能够做到这一点的方法(即使它只是提示!)
【问题讨论】:
-
只要设置了cookie的域,被攻击者
cookie poison的唯一途径就是通过XSS或者访问存储cookie的计算机。 -
看,我一直在研究,而我所看到的恰恰相反。显然,
cookies可以是edited使用名为data tamper的东西?这用于更改购物车价格,以试图欺骗基础设施以免费获得价格。 @aron9forever -
为了确保我理解,您所描述的场景是 1)我访问了您的网站,获取了 cookie 2)我访问了另一个篡改了您的 cookie 的网站 3)我再次访问了您的网站并且出了点问题。如果这是正确的,那么不,那是不可能的。首先是因为第二个网站无法访问您的 cookie,甚至第二个网站发送的脚本也无法访问您的 cookie,原因是现代浏览器中的安全实施。这种现象被称为“跨站烹饪”
-
但是我的评论暗示你的网站没有 XSS 漏洞。因为如果你这样做了,那么被攻击者就可以访问和修改 cookie。由于脚本来自您的域,因此浏览器会授予对 cookie 的访问权限。
-
看,情况就是这样。我不知道该漏洞是如何工作的,第二个恶意站点如何“篡改”我的 cookie?这让我觉得第二个网站也可以添加一个 cookie @aron9forever