Die Grundprinzipien sind garnicht so schwer wie es manchmal scheint.
Order beschreibt, in welcher Reihenfolge die Regeln befolgt werden. Der erste Wert bekommt zuerst beachtung, danach der zweite (Order allow, deny heißt also, dass erst nach allow gesucht wird, danach nach deny). Passt auf einen Host (IP oder Hostname) sowohl eine deny, als auch eine allow Regel, so überschreibt der zweite Wert den ersten. Man könnte sagen, dass der zweite Wert mehr Gewicht hat.
So kann man relativ leicht Black- und Whitelisting auf Verzeichnisse anwenden.
Ein typisches Whitelisting (also das zulassen von z.B. einzelnen IP-Adressen) würde so aussehen:
- Code: Select all
order deny, allow
deny from all
allow from 127.0.0.1
Alle Zugriffe verboten, mit ausnahme von localhost
Ein Blacklisting ist das exakte Gegenteil:
- Code: Select all
order allow, deny
deny from 74.125.39.106
allow from all
Alle Zugriffe erlaubt, außer von Googles Ip-Adresse
Beachten solltest du, dass es hier nur um HTTP Requests geht. Das includen von Dateien in php geschieht auf Verzeichnisebene und bleibt davon unberührt. Du kannst ja auch mit php Dateien includen, die Ebenen höher als dein htdocs Ordner liegen.
Wirklich interessant und mitunter auch komplizierter wird es, wenn du einzelne Dateien oder Dateitypen reglementieren möchtest.