Blog
2010 26 Mar

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.

scris de