Soll das WordPress-Blog abgesichert werden, so wird häufig empfohlen die Basic-Authentisierung für den Admin-Bereich zu aktivieren. Das lässt sich per .htaccess auf einem Apache Web-Server leicht realisieren. Auf diese Weise kann ein Angreifer nicht mehr direkt auf Dateien des Backends zugreifen, so dass die Angriffsfläche reduziert wird. Allerdings werden die Login-Daten bei der Basic-Authentisierung lediglich Base64 kodiert übertragen. Werden die Daten also mitgelesen, lassen sich die Daten leicht wiederherstellen. Daher sollte man zusätzlich die Administration per SSL durchführen (siehe auch  Artikel WordPress SSL Admin).

Wird der Zugriff per SSL-Proxy erzwungen und die Basic-Authentisierung aktiviert, gibt es allerdings ein Problem: beim Zugriff ohne SSL-Proxy erfolgt die Weiterleitung erst, wenn die Basic-Authentisierung durchgeführt wurde. Anschließend erfolgt die Weiterleitung auf SSL und die Basic-Authentisierung muss erneut  durchgeführt werden. Soll die Basic-Authentisierung nur beim Seitenaufruf per SSL-Proxy durchgeführt werden muss die .htaccess-Datei im Verzeichnis /wp-admin wie folgt abgeändert werden:

Die hier beschriebene Einträge für die .htaccess funktionieren bei meinem Provider (all-inkl.com) in Verbindung mit SSL-Proxy. Sollte der Eintrag bei anderen Providern nicht funktionieren, so muss ggf. das Header-Feld “X-Forwarded-Host” beim SetEnvIf-Befehl angepasst werden.
# Wenn kein SSL-Proxy, setze Varible unenc_access
#################################################
SetEnvIf X-Forwarded-Host ^$ unenc_access

# Einstellungen für Basic Auth
##############################
AuthUserFile /path/to/.passwordfile
AuthGroupFile /path/to/.groupfile
AuthName "Backend"
AuthType Basic
Require valid-user
Order deny,allow
Deny from all

# Wenn unenc_access gesetzt, erlaube UnAuth-Access für Weiterleitung
####################################################################
Allow from env=unenc_access
Satisfy any

Soll die xmlrpc.php und die wp-login.php auch abgesichert werden, so ist zusätzlich folgender Code in die .htaccess des Root-Verzeichnisses der WordPress-Installation einzutragen:

<FilesMatch "(xmlrpc|wp-login)(.*)">
	SetEnvIf X-Forwarded-Host ^$ unenc_access
	AuthUserFile /path/to/.passwordfile
	AuthGroupFile /path/to/.groupfile
	AuthName "Backend"
	AuthType Basic
	Require valid-user
	Order deny,allow
	Deny from all
	Allow from env=unenc_access
	Satisfy any
</FilesMatch>