Instantly share code, notes, and snippets.

@zottto /.htaccess
Last active Dec 7, 2018

Embed
What would you like to do?
Mehr Sicherheit in WordPress durch .htaccess
# Beispiel-Codeschnipsel für die WordPress-htaccess-Datei
# https://www.wp-sicherheit.info
# Marc Nilius, info@wp-sicherheit.info
# Mit Material von Zodiac1978, siehe auch https://gist.github.com/Zodiac1978/d25a8f3aebba7cd1c01c
#
# Diese Codeschnipsel gehören in die .htaccess-Datei im Hauptverzeichnis von WordPress
# Jeder einzelne Bestandteil kann einzeln kopiert und genutzt werden.
# Bitte die Verwendungshinweise (Kommentare) an jedem Schnipsel beachten
#
# Full Path Disclosure (FPD) verhindern
# mod_php7.c zu mod_php5.c für PHP < 7
<IfModule mod_php7.c>
php_flag display_errors Off
</IfModule>
# Verzeichnislisting verhindern
Options All -Indexes
# Allgemein Zugriff auf temporäre Dateien o.ä. und sonstige generell nicht sinnvolle Dateien verhinden
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist|txt)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
# Zugriff auf die robots.txt wieder erlauben
# (ist über die obige Regel automatisch mit ausgeschlossen worden)
<Files robots.txt>
Order allow,deny
Allow from all
</Files>
# Zugriff auf htaccess und htpasswd verhindern
<Files ~ "^[\._]ht">
Order Allow,Deny
Deny from all
Satisfy All
</Files>
# Zugriff auf diverse WordPress-Dateien verhindern
<FilesMatch "(wp-config.php|wp-config-sample.php|liesmich.html|readme.html)">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
# Zugriff auf die install.php verhindern
# auskommentieren, um die Installation von Wordpress auszuführen
<Files install.php>
Order allow,deny
Deny from all
Satisfy All
</Files>
# Zugriff auf die XML-RPC-Schnittstelle verhindern
# Diesen Teil nur aktivieren/nutzen, wenn die XML-RPC-Schnittstelle nicht benötigt wird.
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
# Includes-Dateien ausschließen
# Auchtung bei Benutzung in Multisite-Umgebungen!
# See: http://codex.wordpress.org/Hardening_WordPress#Securing_wp-admin
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase muss ggf. angepasst werden, je nach Serverkonfiguration
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteCond %{SCRIPT_FILENAME} !^(.*)wp-includes/ms-files.php
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
# Security-Header setzen
# See: http://de.slideshare.net/walterebert/die-htaccessrichtignutzenwchh2014
# Im WP-Umfeld mit Vorsicht zu genießen - deswegen per default auskommentiert
#<IfModule mod_headers.c>
# Header set X-Frame-Options SAMEORIGIN
# Header set X-Content-Type-Options nosniff
# Header set X-XSS-Protection "1; mode=block"
# Header set Content-Security-Policy "default-src 'self'; img-src 'self' http: https: *.gravatar.com;"
#</IfModule>
# Header mit Versionsinfos deaktivieren
<IfModule mod_headers.c>
Header unset X-Powered-By
Header unset X-Pingback
Header unset SERVER
</IfModule>
# PHP im Uploads-Verzeiochnis verhindern
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(wp-content/uploads/.+.php)$ $1 [H=text/plain]
</IfModule>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment