Я проводил некоторый тест безопасности в своих приложениях WordPress и заметил, что у всех них есть полный путь раскрытия по следующему URL. Я уверен, что на этот вопрос уже был дан ответ, но я не могу найти никакой информации по этому вопросу.
https://mydomains.com/wp-includes/rss-functions.php
Сообщение об ошибке при переходе по ссылке: вызов неопределенной функции _deprecated_file () в /home/mydomain/public_html/wp-includes/rss-functions.php в строке 8
У меня нет ничего в моих темах для RSS.
Изменить: После дальнейших исследований это, кажется, является общей проблемой на большинстве сайтов WordPress. Решения, которые я нашел в Интернете, на самом деле не исправляют ошибку. Они просто говорят, чтобы скрыть сообщения об ошибках в php.ini. Это не исправляет это, и не у всех есть доступ к php.ini в зависимости от их ситуации хостинга.
Ответы:
Файлы PHP в каталоге wp-include не должны быть доступны извне, они должны быть включены только с помощью кода WordPress. Это легко исправить, используя правила .htaccess для блокировки доступа к файлам * .php, которые находятся в каталоге wp-includes
источник
Это практически единственный вариант, чтобы отключить запись ошибок / предупреждений в php. Есть 2 варианта сделать это и еще один, который не так хорош:
http://phphtml.info/how-to-fix-wordpress-internal-pathfull-path-disclosurefpd-issue/
источник
Ошибки отображения должны быть отключены на рабочем сайте.
WP Scan обращается
wp-includes/rss-functions.php
напрямую, и это его исходный код, начиная с WordPress 4.9.7:Когда к нему обращаются напрямую,
_deprecated_file()
функция не существует, поэтому она выдает фатальную ошибку.Решение состоит в том, чтобы отключить
display_errors
на уровне сервера. Если ваш PHP работает под mod_apache, вы можете сделать это, добавив эту строку в ваш основной файл .htaccess:Если вы используете PHP-FPM, вам, вероятно, придется переопределить php.ini в вашей локальной папке public_html.
Также WordPress знает об этом:
https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/#why-are-there-path-disclosures-when-directly-loading-certain-files
источник
Теоретически, то , что я собираюсь вам сказать, опасно и, вероятно, не должно быть сделано, если вы делаете вещи «правильным способом Wordpress».
Практически это работает для нашей производственной среды.
Файл
rss-functions.php
устарел и перенаправляет наrss.php
.rss.php
Начиная с версии 3.0.0, файл устарел, и внутренние комментарии рекомендуют использовать вместо него SimplePie.Таким образом, файл
rss-functions.php
можно безопасно удалить, если у вас нет старой, устаревшей установки и если у вас нет плагинов, которые зависят от этого файла.Или закомментируйте строку 8 в этом файле.
С точки зрения безопасности, вы также должны обязательно реализовать приведенное выше предложение @ MarkKaplun, так как этот файл не предназначен для прямого попадания в браузер.
Кстати, я согласен с вами, что разглашение полного пути является угрозой безопасности; По этой причине мы держим WEBROOT по индивидуальному пути.
источник