php wordpress xmlrpc,wordpress如何合理屏蔽xmlrpc.php

博主分享了如何防止恶意刷WordPress的XMLRPC接口,并通过Nginx配置实现屏蔽,同时解决移动端访问受阻的问题。通过创建xmlrpc_rewrite.php文件进行自定义过滤,确保只有指定UA的设备能访问,如WordPress客户端。此方法既能增强网站安全性,又能确保正常功能不受影响。
摘要由CSDN通过智能技术生成

这两天见到有人又开始在刷我的xmlrpc接口玩登陆什么的了,感觉莫名的烦躁,随后将接口屏蔽之。屏蔽方法有很多种,随便列举几种。

删除根目录下的xmlrpc.php文件,简单粗暴有效,问题是一更新麻烦又来了。

写个函数放在functions.php中,屏蔽这个功能,问题是这个没试过,还得研究过滤器是哪个。

直接nginx或apache在配置文件屏蔽文件,会配置服务器就行。

当然,我采取了方式三,毕竟之前就是这么干的,这个东西很好的屏蔽了wp-comments.php的接口,彻底摆脱垃圾评论。

Nginx配置代码如下:

location ~/xmlrpc\.php* {

rewrite (.*) /index.php;

}

这样请求被重定向到index.php就是wordpress主页,然后就404了,还是相当高明的,虽然很简单,当然你也可以直接return 403或404之类的,看你自己的喜好了。

但是这样干之后,我打开手机版的wordpress客户端,问题发生了,无法访问了,这或用了xmlrpc接口,加入白名单即可,可以使用UA或IP等等,不过针对手机还是用UA最好了。可以在nginx上针对UA过滤,但是我不会这么干,有种太傻的感觉,如果这样干了,以后要改也太麻烦了。遂将配置文件改为如下:

location ~/xmlrpc\.php* {

rewrite (.*) /xmlrpc_rewrite.php;

}

在根目录先新建一个xmlrpc_rewrite.php的文件,接下来想做什么逻辑都可以,要找出那些没事刷接口的也容易,只是依据你设置的白名单,然后来段代码:

if(preg_match("/wp-android/i",$_SERVER['HTTP_USER_AGENT'])){

include __DIR__."/xmlrpc.php";

}else{

include __DIR__."/index.php";

}

这样既可达到自定义过滤的目录,肯定也会有人想,如果单纯从USER_AGENT过滤看,还不如直接利用Nginx的UA过滤呢,确实是这样的,但是我不会啊!!!!

一切都解决了,安心上班。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值