【问题标题】:What's point of http only cookies?仅使用 http 的 cookie 有什么意义?
【发布时间】:2017-07-02 22:28:09
【问题描述】:

假设您的网站受到 XSS 攻击。 黑客可以使用 cookie 发出任何请求。 那么,向客户端隐藏这个值有什么意义呢?

【问题讨论】:

    标签: http security cookies xss csrf


    【解决方案1】:

    在 XSS 攻击中,“黑客可以使用 cookie 发出任何请求”,但并非所有 cookie。如果一个cookie是HttpOnly,那么客户端JavaScript就无法访问它,这意味着黑客无法读取cookie值并将其发送到自己的服务器,甚至不知道这个cookie是否存在。

    通常,当HttpOnly 用于保护cookie 时,cookie 的Domain 也会被设置(如果HTTP 响应的Set-Cookie 标头中缺少Domain,浏览器会将cookie 的域设置为该HTTP 连接的主机名) .黑客可以触发 HTTP 请求,让浏览器在请求中放入HttpOnly cookie,但是会受到 cookie 的Domain 的限制——只有当它的Domain 匹配 HTTP 请求时才会发送 cookie。因此,带有网站DomainHttpOnly cookie 是安全的,不会泄露给XSS 攻击者。

    【讨论】:

    • 他不需要知道cookie的值,他只是发出请求,浏览器把它放到请求中。
    • @Vova 是的,浏览器会将HttpOnly cookie 放入 HTTP 请求中。但通常 cookie 会有一个Domain 属性,它限制在请求中发送的 cookie。对于带有网站DomainHttpOnly cookie,XSS 攻击者只能触发 HTTP 请求并将该 cookie 发送到网站服务器。他/她无法将该 cookie 发送到他/她自己的服务器,从而保证 cookie 的安全。
    • 存在绕过 httponly 标志的攻击,即跨站点跟踪 (XST)。它基于执行 TRACE 请求并从 javascript 中的答案中获取 cookie。显然,如果 Web 服务器有可用的 TRACE 方法,就会发生这种情况。
    • @sinkmanu 好消息是:现代浏览器现在阻止通过 JavaScript 发出 TRACE 请求。请查看owasp.org/index.php/Cross_Site_Tracing
    • @shaochuancs 关于您的第一条评论:这如何解决问题? cookie的价值并不重要,攻击仍然可以劫持cookie本身。它不关心知道值,只关心终端服务器接收到正确的值。 HttpOnly 似乎无法阻止这一点。
    【解决方案2】:

    那么 Http Only cookie 只能被服务器访问。无法从 JavaScript 访问它们。这意味着黑客将更难将这些 cookie 用于自己的用途。

    Http Only cookie 降低了网站受到跨站脚本攻击的可能性。

    查看此链接了解更多信息:https://www.owasp.org/index.php/HttpOnly

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-06
      • 2011-04-26
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多