
您现在的位置是:首页 > WordPress教程WordPress教程
WordPress安全头设置
WP集市
2025-09-08
【WordPress教程】
1964人已围观
-
先说安全头这事吧,就像给WordPress房子加防盗门——光有密码锁不够,还得上链条、猫眼和防撞条。别以为装个防火墙插件就万事大吉,服务器层面的HTTP响应头才是隐形防护层。比如X-Content-Type-Options这玩意儿,直接告诉浏览器"别乱猜文件类型,老子说它是啥就是啥",能防上传恶意文件被错误解析。
-
实操开始,往主题的functions.php里塞代码最直接。但注意啊,别手抖把括号搞错位,不然整个站白屏给你看:
add_action('send_headers', function() { header('X-Content-Type-Options: nosniff'); header('X-Frame-Options: SAMEORIGIN'); header('Referrer-Policy: strict-origin-when-cross-origin'); });
这段就像给响应包穿了三件盔甲:防类型嗅探、防点击劫持、控制来源泄露。尤其X-Frame-Options,能防止别人用iframe把你的站嵌到赌博网站里。
-
但有些头需要动态判断,比如CSP(内容安全策略)。见过有人把CSP写死导致谷歌字体加载失败,其实应该用nonce或hash动态生成:
$nonce = base64_encode(random_bytes(16)); header("Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-$nonce'");
这时候思维要跳跃下——CSP不是固定密码而是动态令牌,每次页面刷新都变,既放行合法脚本又阻断注入攻击。
-
说到HSTS头就更骚了,它强制浏览器只能用HTTPS访问,连第一次请求都自动跳转。但千万别在测试环境乱开,否则半年内你想用HTTP调试都没门:
header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
这个max-age单位是秒,31536000其实就是一年,includeSubDomains连子域名都罩住。有点像焊死车门,连你自己想拆都得等时效过期。
-
其实安全头也会打架。比如同时设X-Frame-Options和Content-Security-Policy的frame-ancestors时,浏览器优先听CSP的。所以最好用工具检查,比如SecurityHeaders.com扫描下,别让自己加的防护自相矛盾。
-
最后提醒,nginx用户别傻傻全用PHP设置。在server块里直接写更高效:
add_header X-XSS-Protection "1; mode=block"; add_header Permissions-Policy "geolocation=()";
Permissions-Policy这新玩意能控制麦克风/摄像头等权限,就算网站被XSS了也能防止黑客调用用户设备硬件。
总之安全头不是银弹,但要像配中药似的君臣佐使互相搭配。定期用curl -I看看响应头,别让某个头漏了或者重复了。WordPress安全就像洋葱,一层层剥开时虽然流泪但总算安心点。
Tags:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。
下一篇:WordPress安全日志监控

热门文章
