WordPress Sicherheit mit {.htaccess}

Nicht immer braucht man  Plugins für die eigene WordPress Seite! Mit der   htaccess Datei  bekommt die WordPress Installation den nötigen Schub. Mehr Performance und Sicherheit ohne zusätzliche Plugins!  Achtung! Die jeweiligen Mods müssen auch auf dem Apache Webserver installiert sein, sonst frage dein Hosting Provider.

Mit der .htaccess Datei die WordPress Systemdateien im Installationsverzeichnis schützen

<files .htaccess>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>

<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
</files>

<files readme.html>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
</files>

<files readme.txt>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
</files>

 <files wp-config.php>
 <IfModule mod_authz_core.c>
 Require all denied
 </IfModule>
 <IfModule !mod_authz_core.c>
 Order allow,deny
 Deny from all
 </IfModule>
 </files>


# -------------------------------------------------------
# Dieser Eintrag wird von WordPress in die .htaccess 
# eingefügt. Sollte nicht verändert werden und am Ende 
# der Datei stehen
# -------------------------------------------------------
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

WordPress Inhalte(Core) schützen ohne Plugins (Wichtig!)


# Core schützen
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-admin/install\.php$ - [F]
RewriteRule ^wp-admin/includes/ - [F]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F]
RewriteRule ^wp-includes/theme-compat/ - [F]
</IfModule>

PHP deaktivieren unter Uploads, Plugins & Themes


<IfModule mod_rewrite.c>
 RewriteEngine On
# Uploads 
RewriteRule ^wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]
# Plugins
RewriteRule ^wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]
# Themes
RewriteRule ^wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]
</IfModule>

Verdächtige Zeichenfolgen in der URL herausfiltern


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} \.\.\/ [OR]
RewriteCond %{QUERY_STRING} \.(bash|git|hg|log|svn|swp|cvs) [NC,OR]
RewriteCond %{QUERY_STRING} etc/passwd [NC,OR]
RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
RewriteCond %{QUERY_STRING} ftp: [NC,OR]
RewriteCond %{QUERY_STRING} https?: [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)script(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
RewriteCond %{QUERY_STRING} base64_decode\( [NC,OR]
RewriteCond %{QUERY_STRING} %24&x [NC,OR]
RewriteCond %{QUERY_STRING} 127\.0 [NC,OR]
RewriteCond %{QUERY_STRING} (globals|encode|localhost|loopback) [NC,OR]
RewriteCond %{QUERY_STRING} (request|concat|insert|union|declare) [NC,OR]
RewriteCond %{QUERY_STRING} %[01][0-9A-F] [NC]
RewriteCond %{QUERY_STRING} !^loggedout=true
RewriteCond %{QUERY_STRING} !^action=jetpack-sso
RewriteCond %{QUERY_STRING} !^action=rp
RewriteCond %{HTTP_COOKIE} !wordpress_logged_in_
RewriteCond %{HTTP_REFERER} !^http://maps\.googleapis\.com
RewriteRule ^.* - [F]
</IfModule>

Nicht-Englische Zeichen filtern


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} %[A-F][0-9A-F] [NC] 
RewriteRule ^.* - [F]
</IfModule>

WordPress-Kommentar-Spam reduzieren


<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{REQUEST_METHOD} POST
 RewriteCond %{REQUEST_URI} /wp-comments-post\.php$
 RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
# Bitte URL/Domain anpassen!
 RewriteCond %{HTTP_REFERER} !^https?://(([^/]+\.)?deineDomain\.de|jetpack\.wordpress\.com/jetpack-comment)(/|$) [NC]
 RewriteRule ^.* - [F]
 </IfModule>

XML-RPC deaktivieren (empfohlen)


<files xmlrpc.php>
 <IfModule mod_authz_core.c>
 Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
 Order allow,deny
 Deny from all
 </IfModule>
</files>

WordPress ProxyBlock mit der .htaccess

# htaccess Datei!
 RewriteEngine on
 RewriteCond %{HTTP:VIA}                 !^$ [OR]
 RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
 RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
 RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
 RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
 RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
 RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
 RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$
 RewriteRule .* - [F]

WordPress Proxyblock mit PHP

// blockproxy php
if(@fsockopen($_SERVER['REMOTE_ADDR'], 80, $errstr, $errno, 1)) die("Proxy access not allowed");

Noch mehr Knette ins Hirn?

  • WordPress Performance Tuning mit .htaccess
  • PHP für WordPress optimieren
  • WordPress mit Nginx, was brauche ich?
  • Ich will raus hier

Über Kommentar, Tipps und Kritik würde ich mich sehr freuen.


Zusammenfassung
Artikel
WordPress Security mit .htaccess
Beschreibung
Mit einfachen Eingriffen in die .htaccess Datei, kann man sich eine menge Kopfschmerzen ersparen. Es spart eine menge Ressourcen, weil viele Plug-ins unnötig werden.
Author
Publisher Name
Was ist SEO

Eine Antwort auf „WordPress Sicherheit mit {.htaccess}“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.