Visualizzazione post con etichetta Apache. Mostra tutti i post
Visualizzazione post con etichetta Apache. Mostra tutti i post

[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,Allow
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
Come 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.

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.

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).

foto2

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:

foto1 

Togliamo il flag malefico e Apache tornerà a servirci :-)

Byte Strike Blog - Designed by Posicionamiento Web | Bloggerized by GosuBlogger