2010-07-02 15 views
10

Czy można zablokować użytkownikom adresy IP za pomocą dynamicznej listy blokowania plików?Dynamic IP .htaccess blocklist?

Więc załóżmy, że .htaccess wygląda następująco:

order Deny,Allow 
Deny from 123.156.0.1 
Deny from 10.0.0.10 
Allow from all 

Może to być dynamiczna lista, na przykład:

order Deny,Allow 
[include Deny list here] 
Allow from all 

Innym rozwiązaniem byłoby oczywiście go naprawić z PHP, ale lepiej jest, aby Apache sobie z tym poradził.

Odpowiedz

6

Zgodnie z Apache docs, odczytanie wartości z pliku tekstowego nie jest możliwe.

Można jednak ustawić plik konfiguracyjny zawierający adresy IP. Musieliby jednak być w formacie pliku conf Apache'a.

To powinno działać:

order Deny,Allow 
include conf/IPList.conf 
Allow from all 

Jest nawet możliwe, aby include całych katalogów, choć nie jest to zalecane.

4

używam funkcji RewriteMap z RewriteModule Apache jako białej listy tak:

## WHITELIST IPS ## 
RewriteMap ipslist txt:/path/to/whitelist.txt 
RewriteCond %{REMOTE_ADDR} ^(.*)$ 
RewriteCond ${ipslist:%1|black} ^black$ [NC] 
RewriteRule (.*) - [F] 

Z pewnym szczypanie, można zrobić to na czarnej liście.

+0

RewriteMap to przyjemne podejście, ale działa tylko w kontekście serwera lub hosta wirtualnego, tzn. Nie .htaccess – Jason