我想在我的Django设置中实现SECURE_HSTS_SECONDS
以获得额外的安全性 - 但是Django文档的警告让我感到害怕,所以我想要一些澄清。这就是说:
SECURE_HSTS_SECONDS
Default: 0
If set to a non-zero integer value, the SecurityMiddleware sets the HTTP Strict Transport Security header on all responses that do not already have it.
Warning:
Setting this incorrectly can irreversibly (for some time) break your site. Read the HTTP Strict Transport Security documentation first.
要打破我的网站"会发生什么事?"?我先阅读了HTTP Strict Transport Security documentation
,但它并没有让它更清晰。
答案 0 :(得分:10)
HTTP Strict Transport Security
HTTP严格传输安全性允许网站通知浏览器 它永远不应该使用HTTP加载网站,应该自动 转换使用HTTP到HTTPS请求访问站点的所有尝试 代替。它包含一个HTTP头,Strict-Transport-Security, 服务器使用资源发回。
换句话说,如果您将SECURE_HSTS_SECONDS
的值设置为例如518400(6天)您的网络服务器将在他第一次访问您的网站时通知您客户的浏览器,以便将来https
专门访问您的网站。这适用于整个定义的时期。如果由于任何原因您无法再通过https
访问您的网站,则浏览器将无法再访问您的服务。
因此,您最初应将此变量设置为类似60s的低值,并确保一切正常,否则您可能会阻止自己和客户访问您的网站。
P.S:HSTS
对将要使用的证书一无所知。您可以续订它,您的客户仍然可以访问您的网站。