首页 » SEO优化 » php防ping技巧_修复 WordPress 最大年夜安然隐患防止 xmlrpcphp 被扫描

php防ping技巧_修复 WordPress 最大年夜安然隐患防止 xmlrpcphp 被扫描

访客 2024-11-22 0

扫一扫用手机浏览

文章目录 [+]

我乃至碰到过更加过分的情形,有客户的 WordPress 站点由于 xmlrpc.php 文件被扫描得过多,造成了做事器负载过多,进入后台和访问页面都变得非常缓慢,并且我们查了好久才知道是这个文件被扫描过多造成的,费事费心费力!

这是由于什么?为什么 xmlrpc.php 文件会被扫描?对付这个问题怎么处理更好。

php防ping技巧_修复 WordPress 最大年夜安然隐患防止 xmlrpcphp 被扫描

什么是 XML-RPC

要理解为什么 xmlrpc.php 文件会被扫描,首先要明白什么是 XML-RPC,它的全称是 XML Remote Procedure Call,即 XML 远程过程调用,它是一套许可运行在不同操作系统、不同环境的程序实现基于网络过程调用的规范和一系列的实现。

php防ping技巧_修复 WordPress 最大年夜安然隐患防止 xmlrpcphp 被扫描
(图片来自网络侵删)

大略说 RPC 便是通过像本地做事一样远程调用其余一台做事器上的做事来完成需求,XML-RPC 便是利用 XML 作为编码格式的 RPC。

XML-RPC 利用 http 作为传输协议,XML 作为传送信息的编码格式,一个 XML-RPC 便是一个要求体为 XML 的 http-post 要求,被调用的方法在做事器端实行并将实行结果以 XML 格式编码后返回。

一个 XML-RPC 协议包括两部分:

RPC client,用来向 RPC 做事端调用方法,并吸收方法的返回数据。
RPC server,用于相应 RPC 客户真个要求,实行方法,并回送方法实行结果。

WordPress 源代码( xmlrpc.php 文件)中已经包含了完全的 RPC 做事端代码,它支持对文章,媒体,评论,分类,选项等等各方面数据的管理。

换句话说,只要懂 XML-RPC 协议,就可以利用 XML-RPC 对 WordPress 博客的各个方面进行操作,也便是说可以利用 XML-RPC 做 WordPress 的客户端。

XML-RPC 安全隐患

XML-RPC 那么好用,也造成了一定的安全隐患,紧张是给攻击者供应了便利,以是攻击者的一项事情便是扫描 xmlrpc.php 文件,以便可以实现:

1. XML-RPC pingbacks 攻击,攻击者可以利用 XML-RPC 的 pingbacks 方法对 WordPress 实施 DDoS (分布式谢绝做事)攻击,如果你利用了 CDN 做事商的 DNS 保护做事,攻击者还可以利用 pingbacks 方法获取站点的真实 IP,剩下不用我说了吧。

2. 纵然 WordPress 设置了登录次数限定,但是利用 XML-RPC 暴力破解 WordPress 的账号密码却逃过了限定,并且 XML-RPC 一次要求就可以实行上百次密码的暴力破解。

彻底屏蔽 XML-RPC

既然存在这些问题,那么最好关闭 WordPress 的 XML-RPC 做事,群里面有些小伙伴建议直接删除 xmlrpc.php 文件就好了,但是删除了,下次 WordPress 升级之后又会涌现,不太建议这么做。

最快的方法,只需在当前主题的 functions.php 文件添加下面这行代码就能关闭它:

add_filter('xmlrpc_enabled', '__return_false');

WPJAM Basic 插件的「优化设置」也有该选项(下图末了一个),直接勾选即可:

利用 PHP 代码或者插件办法关闭,xmlrpc.php 文件被扫描的时候,全体 WordPress 代码还是会被加载,以是如果摧残浪费蹂躏做事器资源在这上面,可以利用下面办法屏蔽做事器上 xmlrpc.php 文件的要求:

1. Apache 可以通过在 .htaccess 文件前面添加以下代码:

<Files xmlrpc.php>Order Allow,DenyDeny from all</Files>

这时候访问 xmlrpc.php,页面显示:

2. nginx 做事器可以添加下面的规则:

location ~ ^/xmlrpc.php$ {return 403;}

3. 如果以上两个办法都不好用,还可以在 WordPress 的 wp-config.php 文件最开始的地方添加:

if(strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false){ $protocol = $_SERVER['SERVER_PROTOCOL'] ?? ''; if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){ $protocol = 'HTTP/1.0'; } header("$protocol 403 Forbidden", true, 403); die;}

这时候访问 xmlrpc.php,页面显示:

标签:

相关文章

php3个等号技巧_CSS3 多列

我们学的不仅是技能,更是梦想!我的头条里先容了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP...

SEO优化 2024-12-12 阅读0 评论0

php证书加签技巧_php若何实现验证码

2016-06-22 PHP技能分享证码在表单实现越来越多了,但是用js的写的验证码,总以为未便利,以是学习了下php实现的验证码...

SEO优化 2024-12-12 阅读0 评论0