3

我已将站点更改为 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>

干杯

4

3 回答 3

3

重定向告诉进入的人http://www.example.comhttps://www.example.com。因为默认是http,如果你离开协议只输入www.example.com然后你会去http://www.example.com所以是的,你需要这个重定向。

不过,这有一些问题。

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

HTTP 严格传输安全(或 HSTS)是一种试图解决此问题的安全机制。您的服务器告诉浏览器始终为该站点使用 https。即使不键入协议(通常使用 http 时),即使您将协议键入为 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 是一件好事并且是你应该保留的东西。在重定向之上。

于 2016-06-11T19:56:09.147 回答
2

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

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

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

于 2016-06-11T18:50:11.740 回答
1

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

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

于 2016-06-11T19:18:01.657 回答