【问题标题】:Site Cookies - Are there any security issues?网站 Cookie - 是否存在任何安全问题?
【发布时间】: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

标签: php security cookies


【解决方案1】:

正如您提到的,通过跨站脚本 (XSS) 劫持会话很常见。

为防止 XSS,您应该始终在将所有用户会话值打印到屏幕之前对其进行过滤和转义。然而,一些错误可能会漏掉,或者一段遗留代码可能容易受到攻击,因此使用浏览器保护来抵御 XSS 也是有意义的。

通过在设置会话 cookie 时指定 HttpOnly 标志,您可以告诉用户浏览器不要将 cookie 暴露给客户端脚本,例如 JavaScript。这使得攻击者更难劫持会话 ID 并伪装成受影响的用户。

 session.cookie_httponly = 1

确保 PHP 仅将 cookie 用于会话并禁止将会话 ID 作为 GET 参数传递也是一个好主意:

session.use_only_cookies = 1

提高应用程序中 PHP 会话安全性的另一个重要方法是在 Web 服务器上安装 SSL 证书,并强制所有用户交互仅通过 HTTPS 进行。

有用的是 PHP 有一个 ini 设置来帮助您确保会话 cookie 仅通过安全连接发送:

 session.cookie_secure = 1

参考:https://www.simonholywell.com/post/2013/05/improve-php-session-cookie-security/

【讨论】:

  • 这是一个很好的信息来源,而且解释得很好!关于登录密钥,如果我将其直接传递到查询中,最好将其删除?因为如果我没看错的话,我假设第二个网站可以alter cookie?
  • @KyleE4K 你是对的。Strip 是一个不错的选择。你可以阅读更多内容:smashingmagazine.com/2011/01/…
  • 太疯狂了,这么少的东西怎么会导致如此严重的漏洞!感谢大家的帮助!
猜你喜欢
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多