【问题标题】:301 Redirect and HSTS in .htaccess.htaccess 中的 301 重定向和 HSTS
【发布时间】:2016-10-12 12:44:26
【问题描述】:

我已将站点更改为 https 并在 .htaccess 中设置了重定向。但我也设置了严格的传输安全性。都是必要的还是有用的?

<IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=16070400"
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

干杯

【问题讨论】:

    标签: apache .htaccess redirect https hsts


    【解决方案1】:

    重定向告诉输入http://www.example.com 的人转到https://www.example.com。因为默认是http,如果你离开协议,只输入www.example.com,那么你将转到http://www.example.com,所以是的,你需要这个重定向。

    这有一些问题。

    首先 http 是不安全的,可以被网络上的其他人读取和更改。这就是您应该使用 https 的原因。但是,由于 http 是不安全的,这意味着他们可以拦截您的重定向并让您使用 http 版本并继续拦截您的流量。或者将您重定向到https://www.evilexample.com

    HTTP 严格传输安全(或 HSTS)是一种尝试解决此问题的安全机制。您的服务器告诉浏览器始终为该站点使用 https。即使不键入协议(通常使用 http 时),即使您DO 将协议键入为 http。

    一旦浏览器为站点加载了 HSTS,它甚至根本不会发送 http 请求,而是会自动将这些请求更改为 https。这有几个优点:

    1. 它更安全,因为它无法被拦截。
    2. 更快,因为不会浪费时间向http://www.example.com 发送请求,只是被告知转到https://www.example.com
    3. 它可用于解决混合内容错误,因为如果您不小心包含了 http 源,则会自动更改 http 资源(仅适用于该站点,但不从其他站点加载)。内容安全策略的 upgrade-insecure-requests 可能是一个更好的解决方案,但 HSTS 仍然提供基本版本。

    正如另一个答案所述,另一个单独的好处是,此设置还意味着浏览器将不允许访问者单击该站点的证书错误,从而增加了针对攻击的额外安全性。

    HSTS 的主要缺点是:

    1. 您的网站只需要使用 https - 这似乎很明显,但很容易错过仅使用 http 的网站的一部分。如果使用 includeSubdomain 选项,则为 http 上的子域。
    2. 访问者需要先访问该网站才能了解 HSTS 政策,尽管您可以将其预加载到浏览器中,但这不太可能做出决定。
    3. 浏览器支持还不是通用的。而且即使是搜索引擎使用的爬虫之类的也可能不会使用它。

    希望这可以解释为什么 HSTS 是一件好事,并且是您应该保留的东西。在重定向之上。

    【讨论】:

    • 谢谢。我会保持原样。我当然会考虑将我的网站添加到预加载列表中,但可能不适合任何客户。
    • 老实说,我不是预加载的忠实拥护者。正如我在这里解释的那样:tunetheweb.com/blog/dangerous-web-security-features
    • 很高兴我在将任何网站添加到列表之前阅读了这一点。非常感谢!
    【解决方案2】:

    我认为你应该看看这个文档https://varvy.com/pagespeed/hsts.html,上面写着:
    它基本上类似于 301 重定向,但在浏览器级别,而不是网页级别。它优于 301 重定向,因为它可以实现为始终只使用 https,而 301 重定向在浏览器第一次看到时实际上是不安全的。

    阅读文档后,您可以决定。

    【讨论】:

      【解决方案3】:

      是的!你应该保留它们。从OWASP docs 开始,使用 HSTS 有很多好处。例如:

      • 自动将 HTTP 请求重定向到 HTTPS。

      • 防止用户覆盖无效的证书消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-07
        • 2014-11-25
        • 2011-05-01
        • 2011-01-03
        • 2012-03-10
        • 2021-07-22
        相关资源
        最近更新 更多