[ Miroslav Ćurčić @ 07.11.2006. 17:45 ] @
Kad god možete, izbegavajte upotrebu $_SERVER['PHP_SELF'] promenljive. Postoji mogućnost XSS napada zbog propusta kojim će ona sadržavati i dodatni tekst ako je on u browser-u dodat iza URLa kao poddirektorijum (domain/dir/script.php/danger_code). Njena najčešća primena je u form/action pokazivanju na samog sebe: Code: <?php $Self= $_SERVER['PHP_SELF']; ?> <form action="<?=$Self?>" method="POST"> <input type="submit"> </form> skript snimite kao test.php a u browser-u unesite: test.php/%22%3E%3Cscript%3Ealert('xss');%3C/script%3E Isprobao sam ovo na par platformi i negde je radilo a negde ne. Tamo gde je sistem konfigurisan da escape-uje URL ovaj nastavak će dobiti nepravilan javascript kod (imaće viška "\" znakova). Iskoristi ovaj propust možda neće biti lako ali bolje je u skriptama upotrebiti alternative, recimo: $Self= basename((isset($_SERVER['SCRIPT_NAME'])) ? $_SERVER['SCRIPT_NAME'] : $_SERVER['SCRIPT_FILENAME']); |