2010-07-02 19 views
10

È possibile bloccare gli utenti dagli indirizzi IP con una block list dinamica basata su file?Elenco di blocco dinamico .htaccess IP?

Così, supponiamo che il .htaccess assomiglia:

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

Può questa lista essere dinamizzato, ad esempio:

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

Un'altra opzione sarebbe ovviamente quello di risolvere il problema con PHP, ma è preferibile lasciare che Apache gestisca questo.

risposta

6

In base allo Apache docs, non sembra possibile leggere valori da un file di testo.

Tuttavia, è possibile include un file di configurazione contenente gli indirizzi IP. Dovrebbero essere nel formato di file conf di Apache, comunque.

Questo dovrebbe funzionare:

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

E 'persino possibile include intere directory, anche se non è raccomandato.

4

Io uso la funzione RewriteMap da RewriteModule di Apache, come una whitelist come questo:

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

Con qualche ritocco, si potrebbe fare questo una lista nera.

+0

RewriteMap è un buon approccio, ma funzionerà solo in un contesto server o host virtuale, ad esempio non .htaccess – Jason

Problemi correlati