我们想将 HSTS 标头添加到我们的页面https://www.wipfelglueck.de 我们的页面在共享服务器上运行,因此我们无权访问 httpd.conf。我们尝试通过 .htaccess 文件启用此标头,如下所示:
<ifmodule mod_headers.c>
DefaultLanguage de
Header set X-XSS-Protection "1; mode=block"
Header set X-Frame-Options "sameorigin"
Header set X-Content-Type-Options "nosniff"
Header set X-Permitted-Cross-Domain-Policies "none"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set Referrer-Policy: no-referrer
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary Accept-Encoding
</FilesMatch>
<filesMatch ".(ico|jpg|jpeg|png|gif|webp)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch ".(css|js|json|html)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
</IfModule>
当我们检查页面时,我们会收到主题中包含以下文本的警告:“HTTP 页面位于http://wipfelglueck.de发送 HSTS 标头。这对 HTTP 无效,应予以删除。”
我尝试了一些方法来解决这个问题,但目前还没有成功。在网上我找不到解决方案,所以如果你能给我一点提示我会很高兴的!
非常感谢!!
非常感谢您的回复!标题为:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
或者
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
没有错误,页面运行,但是当我检查页面时提到这个错误:
Error: No HSTS header
Response error: No HSTS header is present on the response.
这很奇怪。我做错了什么?
答案1
你可以使用以下方式有条件地设置 headersenv=
Header always set Strict-Transport-Security "..." env=HTTPS
(您可以同时使用always
和env=
,前者仅按响应状态进行过滤)
话虽如此,不要为了基准或合规性检查而进行优化。此标头不执行任何操作,关心它只会分散对确实有影响的事情的注意力。当不通过安全传输发送时,此标头根本没有效果 - 但如今,(几乎)所有纯文本请求都应该重定向到https://
,对于(几乎)任何响应标头都是如此http://
。