Я пытаюсь понять XSS-атаки. Я узнал, что должен использовать htmlspecialchars() всякий раз, когда вывожу в браузер что-то, полученное от пользовательского ввода. Код ниже работает нормально.
Чего я не понимаю, так это того, нужно ли здесь использовать htmlspecialchars() для повторения $enrollmentno или нет?
<?php
$enrollmentno = (int)$_POST['enrollmentno'];
echo "<div style='border-radius:45px; border-width: 2px; border-style: dashed; border-color: black;'><center><h4><b>$enrollmentno</b></h4></center></div>";
$clink = "http://xyz/$enrollmentno/2013";
echo"<iframe src='$clink' width='1500' height='900' frameBorder='0'></iframe>";
?>
Если я сделаю что-то вроде
$safe = "<div style='border-radius:45px; border-width: 2px; border-style: dashed; border-color: black;'><center><h4><b>$enrollmentno</b></h4></center></div>";
echo htmlspecialchars($safe, ENT_QUOTES);
Он не показывает правильный формат HTML.
Я не уверен, что здесь нужно использовать HTMLPurifer. Сохраняет ли HTMLPurifer форматирование HTML, предотвращая XSS?
Обновить
echo "<div style='border-radius:45px; border-width: 2px; border-style: dashed; border-color: black;'><center><h4><b>".htmlspecialchars ($enrollmentno)."</b></h4></center></div>";
Делает трюк!
$enrollmentno
? - person Rahil Wazir   schedule 13.12.2013echo "<div style='border-radius:45px; border-width: 2px; border-style: dashed; border-color: black;'><center><h4><b>".htmlspecialchars ($enrollmentno)."</b></h4></center></div>";
- person Nick_inaw   schedule 13.12.2013html/xss filteration
и да, он мощнее, чем обычная функция PHP. Но PHP также предоставляет широкий спектр фильтровfunctions
,constants
, вы также можете использовать их без использования какого-либо стороннего скрипта. - person Rahil Wazir   schedule 13.12.2013