Rss-unctions.php上的完整路径泄漏

时间:2015-09-19 作者:JediTricks007

我对我的WordPress应用程序进行了一些安全测试,发现它们都在下面的url上有完整的路径泄漏。我相信这之前已经得到了回答,但我找不到任何有关这方面的信息。

https://mydomains.com/wp-includes/rss-functions.php

转到链接时的错误消息是调用/home/mydomain/public\\u html/wp includes/rss函数中的未定义函数\\u deprecated\\u file()。php第8行

我的RSS主题中没有任何内容。

编辑:经过进一步研究,这似乎是大多数WordPress网站上的常见问题。我在网上找到的解决方案实际上并没有修复错误。他们只是说在php中隐藏错误报告。ini。但这并不能解决这个问题,也不是每个人都可以访问php。ini取决于其托管情况。

4 个回复
SO网友:Mark Kaplun

wp includes目录中的PHP文件不应该从外部访问,它们应该只被wordpress代码包含。因此,一个简单的解决方法就是使用。htaccess规则阻止对*的访问。wp includes目录下的php文件

SO网友:adiian

这实际上是禁用php错误/警告日志记录的唯一选项。有两种选择,另一种不太好:

php。ini-在大多数托管中,您可以更改php。ini(即使在共享主机中)-。直接在php文件中访问htaccess(不推荐)

http://phphtml.info/how-to-fix-wordpress-internal-pathfull-path-disclosurefpd-issue/

SO网友:Lucas Bustamante

Display_errors 应在生产网站上禁用

WP扫描访问wp-includes/rss-functions.php 这是它的源代码,从WordPress 4.9.7开始:

<?php
/**
 * Deprecated. Use rss.php instead.
 *
 * @package WordPress
 */
_deprecated_file( basename(__FILE__), \'2.1.0\', WPINC . \'/rss.php\' );
require_once( ABSPATH . WPINC . \'/rss.php\' );
直接访问时,_deprecated_file() 函数不存在,因此会引发致命错误。

解决方案是禁用display_errors 在服务器级别。如果您的PHP在mod\\u apache下运行,可以通过将这一行添加到main中来实现。htaccess文件:

php_flag display_errors off
如果您使用PHP-FPM,则可能需要重写PHP。您的本地public\\u html文件夹中的ini。

此外,WordPress意识到:

https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/#why-are-there-path-disclosures-when-directly-loading-certain-files

SO网友:haz

从理论上讲,我要告诉你的是危险的,如果你用“恰当的Wordpress方式”做事,可能就不应该这样做。

实际上,这适用于我们的生产环境。

文件rss-functions.php 已弃用,并重定向到rss.php.

文件rss.php 自v3以来已被弃用。0.0,内部评论建议您改用SimplePie。

所以文件rss-functions.php 可以安全删除as long as 您没有旧的遗留安装,如果没有依赖于此文件的插件。

或者,注释掉该文件中的第8行。

从安全的角度来看,您还应该明确执行上面@MarkKaplen的建议,因为浏览器不会直接访问此文件。

顺便说一句,我同意你的观点,泄露完整路径是一种安全风险;出于这个原因,我们将WEBROOT排除在自定义路径之外。

相关推荐

在RSS提要中显示排名前10的帖子

我正在尝试获得一个rss提要,它将显示本周前10位的帖子。我正在使用top 10 popular posts插件将它们显示在网站的侧栏中,这很好,但需要在rss中显示它们,这样我就可以让它们发送出去的电子邮件。下面是10大API的一些代码。任何帮助都会很好。<?php /* * This example fetches the popular posts tracked by Top 10. * */ if ( function_exists(