![图片[1]-WordPress隐藏head头信息X-Pingback-本站](https://img.cdn.st/images/2d4a17925bf31d4be2530b06c1a67f7d.jpg)
用 WordPress 建站,查看页面 head 常能看到一行 X-Pingback。它是什么?Pingback 是博客之间通知“文章被引用”的机制,网站发布文章时会自动 ping 文中的所有外链,对方站点就能记录谁链接了它。功能看着有用,但 XML-RPC 的 pingback 端口也常被拿来打反射攻击、探测站点,不少人选择直接关掉。
在 functions.php 里关闭
主题 functions.php 加下面这段,阻止站内互 ping,并把 XML-RPC 的 pingback 端口摘掉:
//关闭 pingback
function deel_setup(){
//阻止站内PingBack
if( dopt('d_pingback_b') ){
add_action('pre_ping','deel_noself_ping');
}
}
//WordPress 关闭 XML-RPC 的 pingback 端口
add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}
全新站点到这里就结束了。但旧站有个坑。
旧站要动一次数据库
已发布文章的 ping_status 早就存进了数据库,代码加完 head 里的 x-pingback 照样在,得补一条 SQL,把指定日期之前文章的 ping_status 从 open 改成 closed:
UPDATE wp_posts SET ping_status = 'closed' WHERE post_date < '2021-02-02';
执行完清一遍缓存,再看文章 head,x-pingback 就消失了。这个细节很容易被忽略,进而怀疑代码没生效。
后台开关与提醒
最后到 WordPress 后台 – 设置 – 讨论,把“允许其他博客发送链接通知(pingback 和 trackback)到新文章”的勾去掉。head 里其他看不懂的代码别乱删,有些是订阅(RSS)等功能必需的,除非非常了解每一行的用途。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















暂无评论内容