[Apache] Protezione .htaccess ed autenticazione
Ammettiamo di voler proteggere una parte del nostro sito tramite la classica autenticazione di base di .htaccess e .htpasswd, ma di voler richiedere l'autenticazione solo per chi si connette con IP diversi da quelli che acconsetiamo:
Order Deny,AllowCome da esempio, permettiamo di entrare senza autenticazione ai range CIDR 192.168.0.0/16 ,172.16.0.0/16 e 10.0.0.0/8. In aggiunta permettiamo all'IP statico 87.65.65.65 di entrare senza autenticarsi.
Deny from all
# permettiamo gli indirizzi privati,localhost e
# alcuni IP, protezione htaccess per gli altri
Allow from 172.16. # lan privata...
Allow from 127.0.0.1 # locale...
Allow from 87.65.65.65 # ip statico a caso...
AuthType Basic
AuthUserFile /percorso/al/file/.htpasswd
AuthName "AREA RISERVATA"
Require valid-user
Satisfy any
Per tutti gli altri ci affidiamo al file .htpasswd che sarebbe bene posizionare al di fuori della directory pubblica (di solito www o htdocs a seconda che Apache sia su Linux o Windows).
Per costruire le coppie username:password presenti in .htpasswd potete usare l'eseguibile omonimo presente nell'installazione di Apache (vedere la documentazion online), potete usare uno dei tanti generatori online come .htpasswd Content Generator oppure si può ricorrere ad uno script PHP come il seguente:if(isset($_GET['pass'])){Nell'esempio qui sopra si assume di richiamare uno script PHP nel seguente modo: http://localhost/htpass.php?user=Chris&pass=p4ss.
// prendiamo il parametro dalla query string...
$clearTextPassword = $_GET['pass'];
// criptazione
$password = crypt($clearTextPassword, base64_encode($clearTextPassword));
echo "Valore da immettere nell'.htpasswd: ";
// se viene fornito l'utente...
if(isset($_GET['user']))
echo $_GET['user'].":".$password;
else echo $password;
echo "";
}
Iscriviti a:
Commenti sul post (Atom)
0 comments:
Posta un commento