WordPress模板插件定制

您现在的位置是:首页 > WordPress教程WordPress教程

WordPress点击劫持防范

查看 WP集市 的更多文章WP集市 2025-09-08 【WordPress教程】 1675人已围观

(一) WordPress这玩意儿吧 做网站确实方便 但安全问题就像你家的后门 总得防着点小偷 点击劫持这玩意儿特别讨厌——用户以为自己点的是点赞按钮 结果莫名其妙关注了奇怪的主页 这种攻击说白了就是黑客用iframe把你的网页嵌在恶意页面上面 透明图层里藏着陷阱按钮

(二) 防范原理其实特简单 就是告诉浏览器“别用iframe装我” 核心代码就这几行:

function add_xframe_options() {
    header('X-Frame-Options: SAMEORIGIN');
}
add_action('send_headers', 'add_xframe_options');

往主题的functions.php里一扔 立马见效 不过要注意啊 有些插件自己会设这个头 可能冲突

(三) 现在更流行的做法是用CSP策略 这个就像给浏览器发个安全手册:

add_action('send_headers', function() {
    header("Content-Security-Policy: frame-ancestors 'self' https://trusted.site;");
});

这样只允许自己域名和信任的站点用iframe加载你的站 不过搞CSP的时候小心点 别把自家插件给拦住了

(四) 有个骚操作很多人不知道——用JavaScript做二次防护 虽然黑客能绕过 但能增加攻击成本:

if (top != self) {
    top.location = self.location;
}

这段js代码意思是“如果发现自己在iframe里 就自动跳出来” 不过现在浏览器安全策略升级 很多情况下其实已经用不上了

(五) 实际搞防护的时候得考虑兼容性 老浏览器可能不支持CSP 所以最好双管齐下:

function anti_clickjacking() {
    $headers = [
        'X-Frame-Options' => 'SAMEORIGIN',
        'Content-Security-Policy' => "frame-ancestors 'self'"
    ];

    foreach ($headers as $name => $value) {
        header("$name: $value");
    }
}
add_action('send_headers', 'anti_clickjacking');

这样新老浏览器都照顾到了 就像既装防盗门又加监控摄像头

(六) 有些特殊情况得例外处理 比如需要被嵌入在线教育平台或社交媒体的页面 这时候可以用条件判断:

$allowed_referrers = ['edu.site', 'social.app'];
$referrer = parse_url($_SERVER['HTTP_REFERER'] ?? '', PHP_URL_HOST);

if (in_array($referrer, $allowed_referrers)) {
    header("X-Frame-Options: ALLOW-FROM https://$referrer");
} else {
    header('X-Frame-Options: DENY');
}

这就好比“只允许快递小哥进楼道 其他陌生人一律挡在小区门口”

(七) 最后提醒个坑——缓存插件可能会缓存安全头 导致设置失效 建议设置完以后清空全站缓存 然后用浏览器开发者工具检查Network标签 看看Response Headers里有没有X-Frame-Options和CSP相关字段

(八) 其实最省心的办法是直接用安全插件 比如Wordfence或All In One Security 这些插件带图形化界面 点几下鼠标就能搞定 适合不想碰代码的用户 不过插件多了可能会拖慢网站速度 自己权衡吧

(完) 安全防护就像穿衣服 不能等感冒了才想起加外套 WordPress站点保持更新+强密码+安全头设置 基本就能防住90%的点击劫持了 剩下的10%就得靠平时多注意 别乱装来路不明的插件和主题

Tags:

WordPress模板插件定制

WP集市

V管理员
文章 723 篇 | 评论 0 次
最新文章