Friday, May 05, 2006

Utilizarea variabilei $PHP_SELF

Cand vorbim de formulare ne gandim in primul rand la transmiterea si validarea variabilelor. In exempul urmator nici macar nu e necesara transmiterea valorilor via formular ci pur si simplu afisarea acestuia.

$PHP_SELF este o variabila predefinita ce are ca valoare numele scriptului curent cu tot cu calea sa pornind din root plus informatiile transmise odata cu acesta. Daca spre exemplu scriptul curent ce se executa este http ://xyz.com/dir/script.php, $_SERVER[‘$PHP_SELF’] returneaza /dir/script.php. Daca in plus mai avem si informatii in plus acestea vor fi si ele retinute http ://xyz.com/script.php/plus_info

O practica obisnuita este aceea de a grupa in acelasi fisier mai multe module functionale - spre exemplu: prezentarea unui formular, validarea datelor preluate si procesarea informatiilor. In acest caz formularul face trimitere in acelasi fisier in care e definit. Din motive de portabilitate in acest caz informatiile sunt trimise via formular prin utilizarea variabilei $PHP_SELF:


Ce se intampla daca din browser schimbam adresa cu


Rezultatul e ca la afisarea formularului este executat automat si codul javascript astfel fiind posibil un atac XSS.

Prin urmare $PHP_SELF implica aceleasi riscuri ca orice alta variabila afisata in browser.

Solutia este filtrarea prin htmlentities($_SERVER[‘PHP_SELF’]) sau utilizarea variabilei $_SERVER['SCRIPT_NAME'] ce pasteaza doar numele fisierului.

3 Comments:

Blogger Stefanescu Marian said...

ms ca ai facut acest tutorial!Aveam o nedumerire, dar acum a plecat!Chiar iti multumesc!Tine-o tot asa!

Am si eu un website ce are cateva tutoriale in programare.

http://www.la-mari.co.nr

9:56 AM  
Blogger Gheorghiu Robert said...

www.okazii-bucuresti.ro

5:03 AM  
Blogger Unknown said...

www.cshellworld.com
www.ghostsec.net
www.nextgenconstruct.com

5:11 PM  

Post a Comment

<< Home