1、登录WordPress站点后台,点击【设置】 > 【讨论】 > 默认文章设置 > 取消“允许其他博客发送链接通知(pingback和trackback)到新文章”前面的勾,并点击【保存更改】。
2、在主题functions文件中添加以下代码关闭XML-RPC功能:
- add_filter('xmlrpc_enabled', '__return_false');
如果仅仅想关闭XML-RPC的pingback端口,而不影响第三方离线发表功能,请在functions文件中添加以下代码:
- add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
- function remove_xmlrpc_pingback_ping( $methods ) {
- unset( $methods['pingback.ping'] );
- return $methods;
- }
3、进入数据库把以前发布的文章的ping_status状态关闭,只需要执行以下sql语句即可(如果前缀wp_不同时记得修改哦):
- UPDATE wp_posts SET 'ping_status' = 'closed';
4、进入所使用主题的header.php文件,看看是否有类似以下的代码,如有请直接删除:
- <link rel="pingback" href="<?php bloginfo('home'); ?>/xmlrpc.php">
5、删除WordPress站点根目录的xmlrpc.php文件。
6、安装No Self ping插件。在WordPress后台搜索No Self ping插件,然后安装启用就行。
如果按照上面1~5种方法,基本上已经算是彻底关闭了WordPress站点的pingback功能了。
本站做完以上5个步骤之后,在后台已经不再看到有“pingback被恶意利用”的攻击了,说明应该还是有效果的。所以如果有遇到“pingback被恶意利用”攻击的站点,不妨按照本文的前五个步骤去试试吧。
当然,最后一个方法也是非常好用的,主要是推荐给新人,用过wordpress的人都知道,能不用插件尽量不要用插件。