【问题标题】:The use of cookies and their securitycookie 的使用及其安全性
【发布时间】:2015-01-15 13:30:15
【问题描述】:

背景

大家可能都知道:Cookie 是存储在用户计算机上的小文件。它们旨在保存特定于特定客户端和网站的少量数据,并且可以由 Web 服务器或客户端计算机访问。

这些知识让我对 cookie 的安全性产生了疑问,并提出了几个问题

我的问题

  • Cookie 是否默认加密
  • 如果不是,我将如何加密我的 cookie
  • 除此之外,我使用 SSL 时对 cookie 进行了加密

由于我是一名 PHP 开发人员,以上问题都与 PHP 相关。

【问题讨论】:

  • “Cookie 是小文件”——它们不是。这是浏览器用来存储 cookie 数据的机制的一个可能实现细节。

标签: php security cookies encryption


【解决方案1】:
  • Cookie 是否默认加密

不,cookie 会以您设置的任何值明文发送。

  • 如果不是,我将如何加密我的 cookie

加密键/值对或加密它们以在浏览器和用户之间安全通过?

对于后者,使用 TLS(与 SSL 相同)。对于前者,您应该考虑为什么要加密它们 - 如果您自己加密它们,通常不需要将它们发送到浏览器。

  • 除此之外,我使用 SSL 时对 cookie 进行了加密

是的,它们在传输过程中被加密。但是,除非您设置Secure Flag,否则如果用户访问您的网站的http:// 版本,cookie 将在未加密的情况下传输。

例如如果您在https://www.example.com 上设置了一个cookie,然后用户浏览,或者点击指向http://www.example.com 的链接,那么cookie 将被明文发送。攻击者还可以通过 MITM 连接到另一个站点然后将<img src="http://www.example.com/foo.bar" /> 注入页面来强制 cookie 泄露,从而导致浏览器连接到您的站点并发送所有 cookie。

如果您希望 cookie 仅是 HTTPS,建议始终设置安全标志。

【讨论】:

    【解决方案2】:

    Cookies是否默认加密

    没有。

    如果不是,我将如何加密我的 cookie

    如果您想对用户隐藏信息。首先不要把它放在饼干里。保存在服务器上。 (并放置一个令牌,您可以使用它在 cookie 中检索正确的信息)。

    如果您想对第三方攻击者隐藏信息。使用 SSL。

    除此之外,我使用 SSL 时 cookie 是否加密

    在您使用 SSL 时,服务器和客户端之间(双向)传输的所有内容都会被加密。

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 1970-01-01
      • 2011-09-03
      • 2015-12-14
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2014-07-16
      相关资源
      最近更新 更多