Creare un’ACL tramite User Agent

Written by Hacker Wolf. Posted in Guide, Tutti

SicurezzaSe cliccate su questo link verrete indirizzati ad una pagina il cui messaggio vi lascerà inizialmente perplessi: User Agent errata. La domanda spontanea è: cos’ha la mai User Agent che non va? In questo articolo, rivolto a sviluppatori web, spiegherò il ragionamento che è alla base del funzionamento di quella pagina.

Tanto per cominciare andiamo a vedere ed analizzare il sorgente PHP della pagina.

if (preg_match (‘/No Load/’, $_SERVER[‘HTTP_USER_AGENT’])){
echo "User Agent corretta";
}
else {
echo "User Agent errata";
}

Il codice inizia con il costrutto if a cui segue un’azione ben precisa: tramite la funzione preg_match il server legge se nella stringa User Agent inviata dal client, cioè dal vostro browser, sono presenti le parole No Load. Se ciò corrisponde al vero allora visualizzerete come messaggio finale User Agent corretta, altrimenti ciò che vi è apparso prima. Per cambiare la User Agent potete intraprendere poche strade; dico poche perché i browsers che permettono di fare ciò in modo rapido sono pochi. Con Firefox e derivati si può usare la famosissima estensione User Agent Switcher mentre Safari di Apple ha già tutto l’occorrente al suo interno. Per Chrome bisogna avviare il programma con l’opzione –useragent=xxxxx (forse in futuro non servirà), mentre per Internet Explorer è necessario intervenire sul Registro di Sistema (poi dicono che Windows è più facile…).  Applicando il mio ragionamento ad una qualsiasi pagina web potete iniziare a costruire la vostra ACL artigianale. Ad esempio l’applicazione più naturale può essere rivolta al backend di un sito in modo che l’accesso sia veramente sicuro. Attenzione però: inserire nella UA una password o passphrase che funge da chiave per la serratura del proprio sito può non bastare. Mettiamo lo sfortunato caso che qualcuno veda la vostra UA e con essa la vostra chiave che può facilmente ricordare: meglio quindi “criptarla” in modo da rendere più difficile ricordarsela anche se qualcuno la vede. Passarla sotto MD5 può già esservi d’aiuto: No Load diverrebbe 06292d29e79978d254fc3f256ceb1855, di simile al massimo si può ricordare il codice fiscale!

Allo  stesso modo in cui ci garantiamo l’accesso solo noi aggiungendo qualcosa alla UA, possiamo negarlo a qualcuno solo perché usa lo strumento sbagliato… :-) . Quante volte, cari sviluppatori, avete pensato come sarebbe il mondo senza Internet Explorer 6? Meglio sicuramente. Serve poco per inibire l’accesso agli sfortunati utilizzatori di questo reperto d’anteguerra, basta invertire il funzionamento del codice di sopra in questo modo:

if (preg_match (‘/MSIE 6.0/’, $_SERVER[‘HTTP_USER_AGENT’])){
echo "Il tuo browser fa schifo! Cambialo!";
}
else {
codice pagina qui
}

Così il vostro sito sarà più pulito da navigatori che se qualcosa non li funziona se la prendono con voi perché non sanno che il problema è loro. Naturalmente vi consiglio di aggiungere un filtro anche per IE 5 e 5.5.

Questo è il minimo che bisogna conoscere: si può elaborare ancora di più, come aggiungere più variabili di lettura in modo da personalizzare il livello degli accessi, ma per far sì che a vedere il backend del vostro blog siate voi e soltanto voi dal vostro computer questo basta e avanza.

Tags:

Trackback from your site.