Ich habe einige Sicherheitstests für meine WordPress-Apps durchgeführt und festgestellt, dass alle eine vollständige Pfadangabe für die folgende URL enthalten. Ich bin mir sicher, dass dies bereits beantwortet wurde, aber ich kann keine Informationen dazu finden.
https://mydomains.com/wp-includes/rss-functions.php
Die Fehlermeldung beim Aufrufen des Links lautet Aufruf der undefinierten Funktion _deprecated_file () in /home/mydomain/public_html/wp-includes/rss-functions.php in Zeile 8
Ich habe nichts in meinen Themen für RSS.
Bearbeiten: Nach weiteren Recherchen scheint dies auf den meisten WordPress-Sites ein häufiges Problem zu sein. Die Lösungen, die ich online gefunden habe, beheben den Fehler nicht. Sie sagen einfach, dass sie die Fehlerberichterstattung in der php.ini verbergen sollen. Das behebt es jedoch nicht und nicht jeder hat abhängig von seiner Hosting-Situation Zugriff auf die php.ini.
Antworten:
PHP-Dateien im Verzeichnis wp-includes sollten nicht von außen zugänglich sein, sondern nur per WordPress-Code. Eine einfache Lösung hierfür ist die Verwendung von .htaccess-Regeln, um den Zugriff auf * .php-Dateien zu blockieren, die sich im Verzeichnis wp-includes befinden
quelle
Dies ist praktisch die einzige Option, um die PHP-Fehler- / Warnprotokollierung zu deaktivieren. Es gibt zwei Möglichkeiten, dies zu tun, und eine andere, die nicht so gut ist:
http://phphtml.info/how-to-fix-wordpress-internal-pathfull-path-disclosurefpd-issue/
quelle
Display_errors sollte auf einer Produktionswebsite deaktiviert sein.
WP Scan greift
wp-includes/rss-functions.php
direkt zu und dies ist der Quellcode ab WordPress 4.9.7:Wenn direkt darauf zugegriffen wird, ist die
_deprecated_file()
Funktion nicht vorhanden, sodass ein schwerwiegender Fehler ausgegeben wird.Die Lösung besteht darin,
display_errors
auf Serverebene zu deaktivieren . Wenn Ihr PHP unter mod_apache ausgeführt wird, können Sie dies tun, indem Sie diese Zeile zu Ihrer Hauptdatei .htaccess hinzufügen:Wenn Sie PHP-FPM verwenden, müssen Sie wahrscheinlich php.ini in Ihrem lokalen Ordner public_html überschreiben.
Auch WordPress ist sich dessen bewusst:
https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/#why-are-there-path-disclosures-when-directly-loading-certain-files
quelle
Theoretisch ist das , was ich Ihnen sagen werde, gefährlich und sollte wahrscheinlich nicht getan werden, wenn Sie die Dinge auf die "richtige Wordpress-Art" tun.
Praktisch funktioniert dies für unsere Produktionsumgebung.
Die Datei
rss-functions.php
ist veraltet und wird an weitergeleitetrss.php
.Die Datei
rss.php
ist seit Version 3.0.0 veraltet. In internen Kommentaren wird empfohlen, stattdessen SimplePie zu verwenden.So kann die Datei
rss-functions.php
sicher gelöscht werden, solange Sie keine alte Legacy-Installation haben und wenn Sie keine Plugins haben, die von dieser Datei abhängen.Alternativ können Sie Zeile 8 in dieser Datei auskommentieren.
Aus Sicherheitsgründen sollten Sie auch den obigen Vorschlag von @ MarkKaplun unbedingt umsetzen, da diese Datei nicht direkt vom Browser aufgerufen werden soll.
Übrigens stimme ich Ihnen zu, dass die Offenlegung des vollständigen Pfades ein Sicherheitsrisiko darstellt. Aus diesem Grund halten wir WEBROOT auf einem benutzerdefinierten Pfad fern.
quelle