O scurtă introducere despre Cross Site Scripting - Ce este Cross Site Scripting?
Pentru a înţelege ce este Cross Site Scripting, să vedem o situaţie obişnuită, comuna pentru multe site-uri.
Să spunem că luam anumite informaţii transmise printr-un querystring (şir după caracterul (?) Într-un URL), cu scopul de a afişa conţinutul unei variabile, de exemplu, numele vizitatorului:
http://www.yourdomain.com/welcomedir/welcomepage.php?name=John
După cum putem vedea în acest querystring simplu, transmitem numele vizitatorilor ca un parametru în URL, apoi il afisam in pagina noastra numita "welcomepage.php pagina" cu următorul cod PHP:
<?php
echo ‘Welcome to our site ' . stripslashes($_GET[‘name']);
?>
Rezultatul din acest fragment este prezentat mai jos:
Welcome to our site John
Acest lucru este destul de simplu şi direct. Afişarea conţinutului de variabilei "nume", folosind $ _GET unul din vectorii superglobali ai PHP, aşa cum am făcut, probabil, de sute de ori. Totul pare a fi bine. Acum, ce e în neregulă cu acest cod? Nimic cu adevărat. Dar haideţi să modificam acel querystring prin înlocuirea numelui vizitatoriului nostru a transmis în URL-ul:
http://www.yourdomain.com/welcomedir/welcomepage.php?name=John
cu ceva de genul asta:
http://www.yourdomain.com/welcomedir/
welcomepage.php?name=
<script language=javascript>alert
(‘Hey, you are going to be hijacked!');</script>
Îţi aminteşti de cod PHP inclus pagina noastra "welcome.php" ? Da, ai dreptate. Atunci când vom modifica querystring-ul, urmatorul cod este executat:
<?php
echo ‘Welcome to our site ‘ .
<script language=javascript> alert(‘Hey, you are going
to be hijacked!');</script>
?>
Rezultatul acestui cod este o casuta de alert javascript ce are ca si continut "Hey, you are going to be hijacked!" după fraza "Welcome to our site".
Situatie foarte urâta, nu? Asta e un exemplu simplu de Cross Site Scripting. Aceasta înseamnă că orice cod JavaScript inserat în URL va fi executat cu succes fara nici un fel de problema.