Vidis sta je strucnjak za bezbednost
Koliko ja vidim problem je sto htmlspecialchars ne podrzava UTF-7.
Da je UTF-8 u pitanju dovoljno bi bilo staviti
htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
U slucaju sa UTF-7 prvo treba raditi htmlspecialchars pa onda mb_convert_encoding i onda nema problema:
PHP kôd:
<?php
header('Content-Type: text/html; charset=UTF-7');
$string = "<script>alert(0);</script>";
$string = htmlspecialchars($string, ENT_QUOTES);
$string = mb_convert_encoding($string, 'UTF-7');
echo $string;
?>
E sad ako se sve ovo ispostuje da li i dalje postoji mogucnost da se pored htmlspecialchars() ubaci XSS?
Pitam jer se inace ovo pretvara u igre bez granica: ti resenje a neko tamo odmah novi napad.
Negde sam procitao da se zbog toga preporucuje da se napravi izlazni filter u kome se ne navodi
sta se zabranjuje vec samo
sta je dozvoljeno i na taj nacin se stiti od svih buducih varijacija na temu.
Konkretno me interesuje i da li moze da se ubaci neki od JavaScript event hendlera koji ce da prodje htmlspecialchars() ?