【问题标题】:Can mod_rewrite secure cookies?mod_rewrite 可以保护 cookie 吗?
【发布时间】:2015-02-28 23:41:06
【问题描述】:

假设您只想通过 HTTPS 向客户端发送 cookie,而不是通过 HTTP。您可以使用this 文章中提到的 HTTP 安全标志。但是,由于您可以使用 Apache mod_rewrite 模块向用户发送从您网站的 HTTP 版本到 HTTPS 版本的重定向,这是否意味着它将保护 cookie?换句话说,如果服务器发送重定向,它会发送你的cookie吗?

【问题讨论】:

  • 有趣。我其实不太确定。
  • 安全 cookie 完全基于客户端。如果网络浏览器认为它正在使用 HTTPS 进行连接,它只会发送标记为此类的 cookie。
  • 我有点困惑。从 HTTP 到 HTTPS 的 mod_rewrite 重定向通常涉及在不使用 SSL 进行连接时发送 Location 标头。这告诉客户端使用 HTTPS 重新连接。 mod_rewrite 在任何时候都无法控制 Set-Cookie 标头。
  • @Phylogenesis mod_rewrite 具有可以设置 cookie 的 [CO=...] 标志。 (docs)

标签: security http mod-rewrite cookies https


【解决方案1】:

如果您从 HTTP 重定向到 HTTPS,然后设置 cookie,这些 cookie 将通过 HTTPS 设置。假设您将用户从http://www.example.com 重定向到https://www.example.com,则从www.example.com 发送给用户的Set-Cookie 标头将在传输过程中被加密。

但是,如果用户返回并在浏览器中输入 http://www.example.com,如果 cookie 上未设置 Secure Flag,则 cookie 将通过 HTTP 发送,未加密。

如果您网站上的任何内部链接是 HTTP,其他网站上指向您的任何链接都是 HTTP,或者 MITM 攻击者从您的网站向另一个网站注入 HTTP 资源(例如,<img src="http://www.example.com/x.jpg" /> 会泄露 cookie通过 HTTP)。

这就是为什么建议设置安全标志的原因。 HSTS 可用于帮助确保仅在 HTTPS 上保持连接,但设置安全标志应该是主要关注点。

【讨论】:

    猜你喜欢
    • 2010-10-27
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 2011-09-07
    • 2022-11-19
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多