在一些安全软件扫描过后,会反馈一些报告。如:没有做好X-XSS-Protection,X-Frame-Options的防护措施等等。
解决方法:
请先确保httpd.conf 中:
LoadModule headers_module modules/mod_headers.so
没有被注释。否则下列代码不会起作用。一般情况下该模块是被开启的。
在站点根目录.htaccess中末尾添加:
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000;includeSubDomains"
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
Header set X-Frame-Options SAMEORIGIN
Header set Content-Security-Policy "connect-src 'self'"
Header set Referrer-Policy: no-referrer-when-downgrade
Header set Feature-Policy "geolocation 'self'"
Header set Permissions-Policy "microphone=(),camera=()"
</IfModule>
如果设置后提示Strict-Transport-Security无效,可尝试删除env=HTTPS。
需要注意的是,如果调用了外部的资源或者文件,那么上面的配置会阻止调用外部文件。通过浏览器的审查元素(console)的错误提示,可采取下方的相关措施。
X-Frame-Options添加例外:
例如:允许https://media.1pxeye.com/
Header append X-Frame-Options "ALLOW-FROM https://media.1pxeye.com/"
Content-Security-Policy添加例外:
例如:允许*.typekit.net及*.google.com通过
Header set Content-Security-Policy "connect-src 'self' *.typekit.net *.google.com"
…has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on…
例如:允许https://*.typekit.net通过
Header set Access-Control-Allow-Origin "https://*.typekit.net"
检验方法:
通过https://securityheaders.com/网站检测。如果成功了,以咱《十分钟课堂》网站为例:得到如下结果:
如果配置后,导致网站抛出500错误,需要逐条分析,看看哪一行写法不符合当前的apache版本。详细的值及相关说明可参阅https://developer.mozilla.org/en-US/。
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。