mod_rewrite 可以保护 cookie 吗?

Can mod_rewrite secure cookies?

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

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

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

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

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