最新公告
  • 欢迎您光临IO源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 为确保WordPress安全尽早禁用xmlrpc.php

    xmlrpc-php-1024x512-1

    WordPress的XML-RPC规范是为了标准化不同系统之间的通信,这意味着WordPress外部的应用程序(例如其他博客平台和桌面客户端)可以与WordPress进行交互。

    自WordPress诞生以来,该规范一直是WordPress的一部分,并且非常有用。没有它,WordPress将会置身于孤岛,与互联网其他组成部分分道扬镳。

    但是,xmlrpc.php有其缺点。通过它,可以向您的WordPress网站注入漏洞,现已被WordPress REST API取代,通过API将WordPress开放给其他应用程序方面做得更好。

    在本文中,我们将解释什么是xmlrpc.php,为什么要禁用它,及如何确定它是否正在WordPress网站上运行。

    1. 什么是xmlrpc.php?
    2. 为什么要禁用xmlrpc.php
    3. xmlrpc.php是否在WordPress网站上运行?
    4. 如何禁用xmlrpc.php
    5. 何时需要启用xmlrpc.php?

    什么是xmlrpc.php?

    XML-RPC是支持WordPress与其他系统之间通信的规范。它通过使用HTTP作为传输机制和XML作为编码机制来标准化这些通信来实现此目的。

    XML-RPC早于WordPress:它出现在b2博客软件中,该软件于2003年创建了WordPress。该系统的代码存储在站点根目录下的xmlrpc.php文件中。即使XML-RPC在很大程度上已经过时,它仍然存在。

    在WordPress的早期版本中,默认情况下已关闭XML-RPC。但是自v3.5版本开始,默认情况下又启用它。这样做的主要原因是允许WordPress移动应用程序与WordPress安装进行对话通讯。

    如果您在v3.5版本之前使用WordPress移动应用程序,可能会记得必须在站点上启用XML-RPC才能使用该应用程序发布内容。这是因为该应用程序本身未运行WordPress。相反,它是一个单独的应用程序,通过xmlrpc.php与WordPress网站进行通信。

    但是XML-RPC不仅用于移动应用程序:它还用于允许WordPress和其他博客平台之间进行通信,还支持引用和pingback,并为Jetpack插件提供支持,该插件可链接自托管的WordPress网站至著名的WordPress.com平台。

    但是由于REST API已集成到WordPress核心中,因此xmlrpc.php文件不再用于此通信。相反,REST API用于与WordPress移动应用程序,桌面客户端,其他博客平台,WordPress.com(用于Jetpack插件)以及其他系统和服务进行通信。REST API-可与之交互的系统范围比xmlrpc.php所允许的大得多。此外,拥有更强的灵活性。

    既然REST API取代了XML-RPC,因此我们应该在站点上禁用xmlrpc.php。

    为什么要禁用xmlrpc.php

    在WordPress网站上禁用xmlrpc.php的主要原因是因为可以通过它注入安全漏洞,  并且xmlrpc.php可能成为攻击的目标。

    既然不再需要XML-RPC在WordPress之外进行通信,就没有理由保持它的激活状态。这就是为什么通过禁用它来提高站点安全性。

    如果xmlrpc.php会对WordPress网站造成安全隐患,那么为什么不将其完全从WordPress中删除呢?

    这是因为WordPress的主要功能之一始终是向后兼容。对网站进行良好的管理,就应该知道保持WordPress以及任何插件或主题版本为最新是必不可少的。

    但是总会有那么一群站长不愿或无法更新其WordPress版本至最新版本。如果安装的WordPress版本早于REST API,则这些站点仍然需要访问xmlrpc.php。

    通过XML-RPC Pingbacks进行DDoS攻击

    xmlrpc.php启用的功能之一是pingback和Trackbacks。当另一个博客或网站链接到你的博客文章时,这些通知将显示在您网站的评论中。

    XML-RPC规范使这种通信成为可能,但已被REST API取代(如我们所见)。

    如果您的站点上启用了XML-RPC,则黑客可能会利用xmlrpc.php在短时间内向您的站点发送大量pingback,从而在您的站点上发起DDoS攻击。这可能会使服务器超载,并使站点无法正常运行。

    通过XML-RPC的暴力攻击

    每次xmlrpc.php发出请求时,它都会发送用户名和密码进行身份验证。这带来了重大的安全隐患,而REST API却没有这一点弊端。实际上,REST API使用OAuth来发送用于身份验证的令牌,而不是用户名或密码。

    因为xmlrpc.php随每个请求发送身份验证信息,所以黑客可以使用它来尝试访问您的站点。这样的暴力攻击可能使他们可以插入内容,删除代码或破坏数据库。

    如果攻击者向您的站点发送了足够多的请求,每个请求使用不同的用户名和密码对,则它们最终有可能会被攻击到正确的请求,从而使他们可以访问您的站点。

    因此,如果您正在运行WordPress的最新版本(使用REST API与外部系统进行通信),则应禁用xmlrpc.php,以免你的网站易受攻击。

    xmlrpc.php是否在您的WordPress网站上运行?

    那么我们如何确定xmlrpc.php是否正在WordPress网站上运行。

    并非简单地检查该文件是否存在:xmlrpc.php是每个WordPress安装的一部分,即使禁用了XML-RPC,它仍然存在。

    删除任何内容之前,请务必备份您的网站(注:对网站系统任何核心文件进行修改删除及处理数据库等操作,建议尽可能先备份原文件或者数据库,再执行操作,以免造成不必要的麻烦)。在这种情况下,不要仅仅删除xmlrpc.php文件,因为它会破坏您的站点。

    要检查您的站点上是否启用了xmlrpc.php,请使用WordPress XML-RPC验证服务。这将检查您的站点并告知你网站是否启用了xmlrpc.php。

    WordPress XML-RPC验证服务

    WordPress XML-RPC验证服务

    输入一个我们的测试网站,检测网站的结果如下:

    网站XML-RPC检测-已禁用状态

    网站XML-RPC检测-已禁用状态

    这表明xmlrpc.php在该测试网站上已被禁用。如果您运行检查并发现xmlrpc.php仍在站点上启用,如何关闭它?

    如何禁用xmlrpc.php

    禁用xmlrpc.php有两种方法:

    1. 如何使用插件禁用xmlrpc.php
    2. 如何在没有插件的情况下禁用xmlrpc.php

    如何使用插件禁用xmlrpc.php

    (1)使用插件禁用XML-RPC

    安装插件以禁用xmlrpc.php是最简单的方法。你可以通过安装Disable XML-RPC插件来实现。使用方法如下:

    对一个启用了xmlrpc.php的网站进行XML-RPC检测,你会看到下面的结果:

    网站第一次XML-RPC检测-未禁用状态

    网站第一次XML-RPC检测-未禁用状态

    通过WordPress仪表盘的“ 插件”界面安装插件,然后将其启用。

    您无需执行其他任何操作:启用插件即可禁用XML-RPC。再次对该测试网站进行检查,则会得到不同的结果:

    网站第二次XML-RPC检测-已禁用状态

    网站第二次XML-RPC检测-已禁用状态

    (2)使用插件禁用XML-RPC Pingbacks

    但是,如果要禁用xmlrpc.php的某部分功能,比如Pingback,该怎么办?使用Disable XML-RPC Pingback插件,您可以仅禁用pingback功能,这意味着如果需要,您仍然可以访问XML-RPC的其他功能。

    (3)使用插件配置XML-RPC和REST API激活

    如果要对站点上的xmlrpc.php和REST API的配置方式进行更细致的控制,可以安装REST XML-RPC Data Checker插件。
    安装并启用此插件后,转到 设置>REST XML-RPC Data Checker ,然后单击“ XML-RPC”选项卡。

    REST XML-RPC数据检查器

    REST XML-RPC数据检查器

    可以准确配置xmlrpc.php的哪些功能在站点上处于活动状态。

    或者,您可以将其完全关闭。而且,如果您还想控制REST API,则插件会为您提供另一个选项卡。

    如何在没有插件的情况下禁用xmlrpc.php

    如果您不想在您的站点上安装这类插件,则可以通过WordPress过滤器,或.htaccess文件、Nginx配置文件添加一些代码来禁用xmlrpc.php 。

    (1)通过过滤器禁用xmlrpc.php

    使用xmlrpc_enabled过滤器禁用xmlrpc.php,将此功能添加到其中一个插件并启用即可:

    add_filter( 'xmlrpc_enabled', '__return_false' );
    

    当然也可以将其添加到主题functions文件中,但是编写插件是一种更好的做法。

    (2)通过.htacess文件或者Nginx配置文件禁用xmlrpc.php

    另一种选择与编辑.htaccess文件或者Nginx配置文件来禁用XML-RPC功能。

    如果你的服务器使用的是Apache,则网站根目录找到.htaccess文件中,添加以下代码:

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

    如果你的服务器使用的是Nginx,将以下代码添加到Nginx.config文件中:

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

    您何时需要启用xmlrpc.php?

    在某些情况下,需要在WordPress网站上启用xmlrpc.php,或者不应该完全禁用它。

    • 没有运行REST API(不建议使用,但在某些情况下是必需的),但需要在WordPress网站和其他系统之间进行通信。
    • 无法将WordPress更新至版本4.4或更高版本,因此无权访问REST API。这可能是由于主题或插件不兼容,如果可能,建议尽快使用代替主题或者插件。
    • 正在使用无法访问WP REST API但可以访问XML-RPC的外部应用程序(从长远来看,建议更新该应用程序或切换到兼容REST API的应用程序)。

    以上这些都不是坚持继续启用XML-RPC理由,是一种“不思进取”的行为。

    它仍然存在于WordPress中的唯一原因是为了向后兼容,只有在使用过时的系统时才使用它。对于任何想要使其站点保持最新状态并使用最新技术的人,禁用xmlrpc.php才是正路。

    小结

    XML-RPC规范是在WordPress创建之前就开发了,它是WordPress与外部系统和应用程序进行通信的一种手段。XML-RPC曾经是WordPress的重要组成部分,但现在它可以成为WordPress网站的安全风险,如非必要,我们应该禁用它。

    既然REST API允许您的站点与其他应用程序通信,则可以安全地禁用xmlrpc.php。按照上述步骤操作,则可以通过禁用它来提高网站的安全性。

    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!384324621@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有★币奖励和额外收入!

    IO 源码网 » 为确保WordPress安全尽早禁用xmlrpc.php

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    IO源码吧
    一个高级程序员模板开发平台

    发表评论

    • 84会员总数(位)
    • 10537资源总数(个)
    • 68本周发布(个)
    • 8 今日发布(个)
    • 400稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情