WordPress-Sicherheit erhöhen
WordPress PHP-Skripte rufen nach Start auch die PHP-Skripte der Themes und die Plugin-Skripte auf. Der Aufruf dieser Skripte erfolgt also von anderen Skripten aus und nicht durch Zugriff von Browsern auf die Skript-URLs. Ein direkter Aufruf dieser Skripte ist im Normalfall nicht vorgesehen, wobei es einzelne Themes and Plugins gibt, die diesen Aufruf nutzten könnten, z.B. zum Hochladen von Formulardaten – wofür WordPress eigentlich standardisierte und bessere Möglichkeiten hat.
Direkte Ausführung von Skripten in Unterverzeichnissen verbieten
Jedes Verzeichniss kann eine Datei .htaccess enthalten, die der jeweilig eingesetzte Webserver unter anderem für die Rechteverwaltung des aktuellen Verzeichnisses und seiner Unterverzeichnisse nutzt.
Ist die .htaccess
-Datei im Verzeichnis /wp-includes/themes
untergebracht, verhindert sie das direkte Ausführen von PHP-Code in Themes.
Direkte Ausführung von Plugin-Skripten sperrt die .htaccess
-Datei im Verzeichnis /wp_content/plugins
.
Das Vorgehen ist je nach Webserver etwas unterschiedlich:
Apache Webserver
Der folgende Code im Verzeichnis von Themes oder Plugins sperrt die direkte Ausführung von Skripten beim Apache Webserver ab Version 2.4:
# Kein direkter Zugriff auf *.php files
# in diesem Ordner und Unterordnern
<FilesMatch \.php$>
Require all denied
</FilesMatch>
nginx Webserver
Dieser Code sperrt die direkte Ausführung von Skripten beim nginx Webserver:
# Kein direkter Zugriff auf *.php files
# in diesem Ordner und Unterordnern
location ~ (^/wp-includes/plugins/.+\.php|^/wp-includes/themes/.+\.php) {
return 444;
}