Neulich sind wir schon mal auf die .htaccess näher eingegangen und haben im Artikel „modrewrite in der .htaccess“ z.B. eine White-/Blacklist für den sog. Bilderklau erklärt.
Heute wollen wir wieder so etwas wie "Blacklist/Whitelist" in der .htaccess anlegen und damit ganze IP-Adressen/-Rages sperren bzw. erlauben. Das ganze ist ein bisschen simpler als die Geschichte mit dem Bilderklau.
Im Prinzip ist der Aufbau immer gleich:
Order deny,allow
Deny from all
Allow from 192.168
Allow from 87.123
Allow from 87.122
Allow from 80.156.246
In diesem Beispiel (Whitelist-Prinzip) haben wir als erstes eine Reihenfolge festgelegt: erst deny (verbieten), dann allow (erlauben). Also wird erst einmal geschaut was verboten ist und danach geschaut was genau erlaubt ist. Verboten ist im Beispiel alles (deny from all). Und danach erst werden einzelne IP-Ranges erlaubt.
Natürlich würde die ganze Geschichte auch anders rum (Blacklist-Prinzip) gehen:
order allow,deny
allow from all
deny from 46.160.85.231
deny from 78.7.77.234
deny from 83.49.134.224
deny from 110.142.78.177
Gesehen, wieder das selbe Prinzip: Reihenfolge der Regeln festlegen und danach die einzelnen Regeln definieren.
In den beiden Beispielen beziehen sich die Regeln natürlich auf die gesamte Website. Man kann auch nur den Zugriff auf einzelne Ordner/Dateien erlauben/verbieten, z.B. in WordPress die Login-Seite:
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from 192.168
Allow from 87.123
Allow from 87.122
Allow from 80.156.246
</Files>
Jetzt sollte die Vorgehensweise und das Prinzip weitestgehend klar sein, oder?