[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'])){
// 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 "";
} Nell'esempio qui sopra si assume di richiamare uno script PHP nel seguente modo: http://localhost/htpass.php?user=Chris&pass=p4ss.
22:37 | Categorie: Apache, PHP, Servizi | 0 Comments
XAMPP e Skype
Sul mio pc di lavoro ho installato per comodità e necessità XAMPP. Oggi accendo il computer e Apache non ne voleva sapere di lavorare. Nel vano tentativo di avviarlo questo si lamentava del fatto di non poter effettuare il bind sulla porta 80 in locale.
Esiste la comoda utility, XAMPP Port Checker (che si trova all'indirizzo C:\xampp\xampp-portcheck.exe), che ci rileva se le porte occupate da Apache, MySQL & Co sono libere oppure no (e in tal caso ci rivela l'eseguibile che le tiene in ostaggio).
Come si può notare dalla foto soprastante, mi ci ritrovo Skype in ascolto sulla 80. Un breve sguardo alle proprietà avanzate di Skype rivela un simpatico flag:
Togliamo il flag malefico e Apache tornerà a servirci :-)
22:44 | Categorie: Apache, software, web development | 2 Comments