【问题标题】:Does a cookie can be security and not security? when it will be like this?cookie 可以是安全的而不是安全的吗?什么时候会这样?
【发布时间】:2014-05-29 05:56:11
【问题描述】:

我们知道,带有 Secure 属性的 cookie 意味着它只是通过加密连接传输的。所以我的问题是cookie是否可以是安全的,而不是不安全的。如果是这样的话, 为什么或为了什么?

【问题讨论】:

  • 您能解释一下您的问题吗?
  • 例如一个名为“uid”的cookie,如果存在“uid”在某个时间是安全的,而在另一个时间是不安全的场景。

标签: security http cookies nginx https


【解决方案1】:

如上所述,cookie 可以有一个Secure flag.

如果是true,则cookie仅由浏​​览器发送HTTPS请求。

如果是false,则浏览器会为 HTTP HTTPS 请求发送 cookie。

没有单独的 HTTP 传输设置。 HTTPOnly 标志只是阻止它通过 JavaScript 和其他客户端语言访问,它不会影响其 HTTP/HTTPS 行为。

因此,通过将Secure 设置为 false,cookie 将根据当前协议进行加密和解密传输。

不建议这样做,因为如果通过 HTTP 连接发送 cookie 值可能会被嗅探,或者被攻击者强制(例如,攻击者只需在其站点上的图像标签中链接到 HTTP 站点将导致该值被泄露 - <img src="http://www.example.com/img.jpg" />)。

【讨论】:

    【解决方案2】:

    Secure 和 HttpOnly 属性没有关联的值。相反,属性名称的存在表示已指定 Secure 和 HttpOnly 行为。

    Secure 属性旨在将 cookie 通信限制为加密传输,引导浏览器仅通过安全/加密连接使用 cookie。如果 Web 服务器从非安全连接中设置了一个带有安全属性的 cookie,该 cookie 在被中间人攻击发送给用户时仍然可以被截获。

    HttpOnly 属性指示浏览器不要通过 HTTP(和 HTTPS)请求以外的渠道公开 cookie。 HttpOnly cookie 无法通过非 HTTP 方法访问,例如通过 JavaScript 调用(例如,引用“document.cookie”),因此无法通过跨站点脚本(一种普遍的攻击技术)轻易窃取。 [37]其中,Facebook 和 Google 广泛使用 HttpOnly 属性。

    简而言之,“安全”属性意味着它需要安全 (ssl) 传输,例如 HTTPS。

    这是为了防止 cookie 被盗或 cookie 劫持。你可以看看这个wiki

    您可能还想了解 Cookie 加密或签名 Cookie,这是一种使您的 cookie 免受恶意 cookie 修改的方法。基本上,您将哈希附加到 cookie 值并使用它来验证 cookie 的值没有被修改。

    【讨论】:

    • 谢谢。但我想知道的是,安全 cookie 有时也可能是非安全 cookie?像这样,Set-Cookie: uid=123456;安全有段时间是这样的,Set-Cookie: uid=123456;
    猜你喜欢
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2015-04-23
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多