在一些安全软件扫描过后,会反馈一些报告。如:没有做好X-XSS-Protection,X-Frame-Options的防护措施等等。
目录
解决方法:
请先确保httpd.conf 中:
LoadModule headers_module modules/mod_headers.so
没有被注释。否则下列代码不会起作用。一般情况下该模块是被开启的。
在站点根目录.htaccess中添加:
<IfModule mod_headers.c>
Header set Content-Security-Policy "
default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval'; # 按需移除 unsafe-*,改用 nonce/hash
style-src 'self' 'unsafe-inline'; # 同上
img-src 'self' data: https:;
font-src 'self';
connect-src 'self' https://api.example.com; # 按需添加可信 API
object-src 'none';
base-uri 'self';
frame-ancestors 'none';
upgrade-insecure-requests;
block-all-mixed-content;
"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Header set X-Content-Type-Options nosniff
Header set X-Frame-Options SAMEORIGIN
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header set Permissions-Policy "microphone=(), camera=()"
Header set Cross-Origin-Embedder-Policy "require-corp"
Header set Cross-Origin-Opener-Policy "same-origin"
Header set Cross-Origin-Resource-Policy "same-origin"
</IfModule>
如果设置后提示Strict-Transport-Security无效,可尝试删除env=HTTPS。
💡 重要提示:
'unsafe-inline'和'unsafe-eval'会降低安全性,仅用于开发或无法避免内联脚本/样式的场景。- 使用 CSP Evaluator 检查策略安全性。
- 生产环境应使用 nonce 或 hash 替代内联内容。
X-Frame-Options添加例外:
例如:允许https://media.1pxeye.com/
Header append X-Frame-Options "ALLOW-FROM https://media.1pxeye.com/"
Content-Security-Policy添加例外:
例如:允许google字体和adobe字体
Header set Content-Security-Policy "connect-src 'self' fonts.gstatic.com use.typekit.net; object-src 'none'; upgrade-insecure-requests; block-all-mixed-content;"
…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/。
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。