я в настоящее время есть проблема, что htmlentities
функции показывает все специальные символы, такие как<
, >
, "
, '
и функция не преобразовывает их к чему-то вроде '
.htmlentities показывает все символы, но не выполняет их
Однако он не выполняет такие функции, как <script>alert("test");</script>
, он просто отображает его.
Есть ли проблемы? Если да, то как я могу это решить?
Мое основное намерение позади htmlentities
вещей должно быть на 100% безопасным для атак XSS.
Пример кода
$string = '<script>alert("test");</script>';
echo htmlentities($string, ENT_QUOTES, 'UTF-8');
для XSS htmlentities является неправильной функцией. normaly вы используете htmlspecialchars. достаточно! htmlentities делает больше, чем вам нужно. –
Вы просматриваете это в браузере? Потому что браузер расшифровывает эти специальные последовательности и «отображает» их. Проверьте источник, чтобы узнать, действительно ли он закодирован, или протестируйте его, используя error_log вместо echo. – ahoffner