Page 179 - Corso di PHP - Livello base
P. 179
27. La sicurezza in PHP: XSS e SQL Injection
Iniziamo in questo capitolo una breve panoramica su due dei
problemi di sicurezza più comuni degli script PHP. Partiamo
dal cosiddetto “Cross-site Scripting”, noto anche come XSS: si
tratta di un problema, molto diffuso, che riguarda la sicurezza
dei form e in particolare i form che non applicano controlli
sui campi. Il malintenzionato può, tramite il form, far eseguire
un codice JavaScript che magari rimanda a un suo sito dove è
contenuto uno script dannoso. A proposito: ricordo a tutti
quelli che leggono che alcune delle cose che sto per illustrare, se
messe in pratica, costituiscono un reato penalmente
perseguibile. Ve ne parlo solo affinché vi possiate difendere.
Tornando al nostro XSS, prendiamo un semplicissimo form per
inserire un messaggio:
<form action="xss.php" method="get">
Nome:<br />
<input type="text" name="nome" /><br />
Messaggio: <br />
<textarea rows="10" cols="20" name="messaggio"></textarea><br />
<input type="submit" name="invia" value="Invia!" /><br />
</form>
E supponiamo che il codice della pagina xss.php sia strutturato
in questo modo:
<?php
echo "Nome: {$_GET['nome']}";
echo "<br /><br />Messaggio: <br /><br />";
echo stripslashes($_GET['messaggio']);
179