xmlrpc.php有什么用以及为何建议禁用
WordPress是全球最受欢迎的网站托管平台,支撑着互联网上超过40%的网站。WordPress之所以如此受欢迎,很大程度上是因为它提供了丰富多样的功能。
然而,并非每个WordPress功能都值得使用,有些功能甚至带来了比好处更多的风险。WordPress的xmlrpc.php文件就是一个典型例子。
这个文件旨在使用XML允许远程过程调用(RPC),然而它已成为黑客常用的WordPress安全漏洞。让我们深入了解这个存在风险的WordPress功能以及为何需要禁用xmlrpc.php来保障网站安全。
常见用途
WordPress 的 xmlrpc.php 文件可能不是最安全的 WordPress 功能,但它确实提供了一些好处和用途。xmlrpc.php 的一些最常见用途包括:
Pingback功能
Pingback 是当其他网站链接到其内容时通知网站所有者的一种方式。当一个 WordPress 网站链接到另一个网站时,会自动生成一个 pingback 并发送到链接的网站。它本质上只是一种通知,让您知道其他人已链接到您的网页或博客。
xmlrpc.php 文件的最初目的之一就是促进这些 pingback;它旨在接收来自链接站点的 pingback 请求并对其进行处理以在被链接到的站点上创建 pingback 评论。
移动应用集成
xmlrpc.php的主要用途之一是连接WordPress网站和移动应用程序。通过使用XML-RPC协议,WordPress网站所有者可以通过移动应用执行任务,如检索帖子、提交新内容和管理评论。
远程发布
WordPress 网站的一大优点是允许网站所有者在世界任何地方发布和管理内容。xmlrpc.php 文件在实现这一点方面发挥了关键作用,它允许用户远程访问 WordPress 仪表板。
通过使用 XML-RPC 请求,用户可以不通过WordPress管理面板来创建、编辑和删除帖子、管理类别,甚至审核评论。
安全风险和漏洞
尽管WordPress的xmlrpc.php文件有其优点和用途,但它也带来了一些值得注意的安全风险和漏洞,包括:
暴力破解攻击
暴力破解攻击涉及反复尝试各种用户名和密码组合,试图获得网站的未经授权访问。
因为xmlrpc.php允许在单个请求中执行多个命令,黑客可以利用该文件快速尝试大量登录组合。它基本上允许他们加快过程,并绕过防范暴力破解攻击的传统速率限制机制。
分布式拒绝服务(DDoS)攻击
DDoS攻击是一种旨在通过大量非法流量压垮网站服务器的网络攻击,从而使网站无法处理合法用户的请求。
通过使用xmlrpc.php中的pingback功能,黑客可以轻松地向目标站点发送大量pingback请求,压垮服务器,使网站在攻击持续期间无法访问。
更广泛的安全问题
除了DDoS和暴力破解攻击外,xmlrpc.php文件还与其他一些漏洞和更广泛的安全问题有关,包括:
跨站脚本(XSS):黑客可以通过未充分净化的XML-RPC请求注入恶意脚本。
SQL注入:不正确处理XML-RPC数据可能允许黑客操纵数据库查询。
远程代码执行:利用xmlrpc.php中的漏洞可能允许黑客在服务器上执行任意代码。
xmlrpc.php文件最大的好处也是其在网站安全方面最大的问题:它提供了一个强大的远程交互接口,而这个接口有时会被恶意行为者访问和利用。
这些并非都是假设,有许多高调的案例中黑客利用xmlrpc.php造成了很大损害,比如2015年利用xmlrpc.php进行的大规模暴力破解攻击,2016年的一系列XML-RPC pingback攻击,以及2019年的一个跨站脚本漏洞,黑客通过XML-RPC请求注入恶意脚本。
xmlrpc.php的替代方案
鉴于xmlrpc.php带来的安全风险,许多网站所有者选择禁用它,并使用替代方案来填补其作用。例如WordPress REST API,它可以提供与xmlrpc.php相同的许多好处和功能,而没有固有的安全漏洞。
WordPress REST API在WordPress 4.7中引入,允许开发者以更标准化和灵活的方式使用JSON数据格式与WordPress进行交互。它提供了WordPress数据类型的端点,使开发者能够使用HTTP请求创建、读取、更新和删除内容。
最重要的是,WordPress REST API是根据现代安全实践设计的。它提供了更强大的身份验证和授权机制,确保只有授权用户可以远程访问网站。
除了REST API,网站所有者还可以使用各种插件来替代xmlrpc.php文件的功能。例如,Jetpack是一个利用REST API提供功能的插件,如远程站点管理和远程发布,这样更安全且没有主要漏洞。
如何禁用xmlrpc.php
xmlrpc.php文件在WordPress网站上是默认启用的这意味着如果您决定不使用它,需要自己禁用。有几种方法可以实现:
使用.htaccess文件
.htaccess是由基于Apache的Web服务器使用的配置文件,可以用于阻止对xmlrpc.php文件的访问。要做到这一点,使用FTP客户端或您的Web主机的文件管理器访问您网站的根目录。找到.htaccess文件,用文本编辑器打开它。然后插入以下代码,并将.htaccess文件上传回服务器以禁用xmlrpc.php:
<Files xmlrpc.php> |
使用安全插件
如果您不是代码方面的专家,可以借助插件来实现,如:
Disable XML-RPC
Wordfence Security
iThemes Security
All In One WP Security & Firewall
使用FTP或cPanel
通过使用FTP或cPanel,您可以通过删除或重命名文件使xmlrpc.php无法被请求访问。为此,使用FTP或cPanel打开您的根目录,找到xmlrpc.php文件。右键点击文件进行重命名或删除。
修改functions.php文件
禁用xmlrpc.php的最后一种方法是向您的主题的functions.php文件添加一段代码。使用FTP客户端或您的Web主机的文件管理器导航到您的主题目录,通常位于/wp-content/themes/your-theme/。找到functions.php文件,用文本编辑器打开它并添加这一行代码:
add_filter('xmlrpc_enabled', '__return_false'); |
然后保存更改并将文件上传回服务器,xmlrpc.php将被禁用。
额外的安全措施
禁用xmlrpc.php可以消除一些高风险的安全漏洞,但这远不是确保WordPress网站安全的唯一措施。除了禁用xmlrpc.php文件,还可以考虑以下额外的安全措施:
使用防火墙
Web应用防火墙(WAF)旨在监控网络流量并阻止任何可疑请求。这些防火墙对各种网络威胁提供出色的保护,包括SQL注入、跨站脚本、DDoS攻击等。
限制IP地址访问
如果不想禁用xmlrpc.php,可以通过基于IP地址限制对该文件的访问来加强许多漏洞,确保只有授权用户可以访问该文件。
使用SiteLock保护您的WordPress网站
禁用xmlrpc.php只是WordPress网站所有者需要采取的众多安全措施之一。Hostease也提供了转移的工具协助您维护网站安全,SiteLock的综合WordPress安全工具和服务套件使所有其他步骤变得简单。
通过SiteLock网站安全计划,您可以获得自动恶意软件检测、恶意软件移除、漏洞修补等所有功能于一身的安全套餐。