图片待添加
图片待添加

WordPress安全:关闭WordPress 禁用XML-RPC接口服务

2020-03-05 14:16 分类:WordPress安全教程 阅读(次阅读) 标签:

虽然之前说了可以通过修改WordPress后台登录地址来让网站变得更安全.

修改WordPress后台登录地址相关文章推荐:

WordPress安全:无插件修改WordPress后台登录地址
WordPress安全:修改WordPress后台登录地址wp-login
WordPress插件:修改WordPress后台登录地址wp-admin
修改wordpress后台登录地址wp-admin插件WPS Hide Login

但是还是会有很多人通过攻击XML-RPC服务让你的WordPress网站瘫痪.

控制大量的IP不停的访问WordPress的xmlrpc.php文件,造成服务器瘫痪,或者网站没什么访问量但是内存与CPU占用却超高.

WordPress XML-RPC服务介绍

XML-RPC 是 WordPress 用于第三方客户端(如 WordPress iPhone 和安卓客户端,Windows Live Writer 等)的 API 接口,还可以用于 pingbacks 和 trackbacks 端口,作为站点之间的通讯桥梁。
WordPress 源代码中已经包含了完整的 RPC 服务端代码,它支持对文章,媒体,留言,分类,选项等等各方面数据的管理。
简单说,你只要了解 XML-RPC 协议,可以使用 XML-RPC 对你的 WordPress 博客的各个方面进行操作,也就是说可以使用 XML-RPC 做 WordPress 的客户端。
在 WordPress 3.5 版本之前,XML-RPC 服务一直默认是的被禁用的,因为它会造成安全漏洞,比如垃圾留言和 Trackback Spam 等。但是 将改变这个设置。因为 WordPress 开发团队的努力,这一安全隐患被修正,所以 WordPress 索性默认将其开启,并且不在后台提供关闭选。
并且 WordPress 更新到 3.5 之后,数据库中的 “enable_xmlrpc” 选项字段也将被删除,这样即使你在之前把 XML-RPC 设置为关闭,到了 WordPress 3.5 之后,也将开启。

大多数网站应该都没有用到这个功能吧.

但是不要直接删除WordPress根目录的xmlrpc.php,否则它会让你的wordpress网站发生莫名的错误。

那么怎么关闭WordPress 禁用XML-RPC服务:

方法一: 通过functions.php禁用XML-RPC服务

打开当前WordPress主题开发functions.php文件,在<?php下面的?>前面添加如下代码:

//WordPress禁用XML-RPC接口服务
add_filter('xmlrpc_enabled', '__return_false');

如果你还是用使用第三方客户端来管理Wordpress文章,那么可以只关闭XML-RPC的pingback 端口.

打开当前WordPress主题开发functions.php文件,在<?php下面的?>前面添加如下代码:

//禁用XML-RPC的pingback接口
add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}

方法二: 通过服务器伪静态规则关闭WordPress 禁用XML-RPC服务

如果是Nginx环境,在伪静态规则: WordPress SEO伪静态规则设置Nginx与Apache和https伪静态规则

Nginx环境下面添加如下规则:

location ~* /xmlrpc.php {
    deny all;
}

Apache环境下在根目录的htaccess文件里添加下面的规则:

# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

或者如果有用户访问xmlrpc.php文件,然后让其跳转到其他不存在或者存在的其他页面,降低自身网站的负担。

你可以跳转到某个文件的下载页面…

Apache环境下在根目录的htaccess文件里添加下面的规则:  跳转链接地址请自行修改

# protect xmlrpc
<IfModule mod_alias.c>
Redirect 301 /xmlrpc.php http://example.com/custom-page.php
</IfModule>

Apache环境的WordPress伪静态如何添加?
新建一个txt文件,将Apache环境WordPress伪静态代码添加到文件中,然后另存为.htaccess文件,上传到WordPress站点的根目录即可。
仅能存在一个.htaccess文件

方法三: 阻止WordPress的pingback端口

在functions.php中添加

//阻止WordPress的pingback端口
add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}

方法四:安装插件

安装Login Security Solution插件

总结: 如果是采用方法一关闭xmlrpc的话,简单直接.

 

 


本文地址: https://www.wpyi.com/wordpress-xmlrpc.html