最近搭建了一个个人网站,安装了一些防护插件后,邮件总是提示有用户试图登录被组织,即使设置了屏蔽也没办法拦截,检查了登录路径,发现均是通过xmlrpc.php的方式,网上搜集整了了一些关于xmlrpc.php的资料以及如何禁用xmlrpc.php的方法。
什么是 XML-RPC
要理解为什么 xmlrpc.php
文件会被扫描,首先要明白什么是 XML-RPC,它的全称是 XML Remote Procedure Call,即 XML 远程过程调用,它是一套允许运行在不同操作系统、不同环境的程序实现基于网络过程调用的规范和一系列的实现。
简单说就是一个程序可以要求另外一个程序做事情。随着 REST API的兴起,xmlrpc.php已经被代替了,但WordPress仍然保留着这个文件。很可能给网站带来一些安全风险,被利用来攻击 WordPress 网站。
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 的客户端。