В порядке предпочтения:
- Если вы используете движок шаблонов (например, Twig, Smarty, Blade), убедитесь, что он предлагает контекстно-зависимое экранирование. Я знаю по опыту, что делает Твиг.
{{ var|e('html_attr') }}
- Если вы хотите разрешить HTML, используйте Очиститель HTML . Даже если вы считаете, что принимаете только Markdown или ReStructuredText, вы все равно хотите очистить HTML эти языки разметки.
- В противном случае используйте
htmlentities($var, ENT_QUOTES | ENT_HTML5, $charset)
и убедитесь, что остальная часть вашего документа использует тот же набор символов, что и $charset
. В большинстве случаев 'UTF-8'
является желаемым набором символов.
Кроме того, убедитесь, что вы выбрали на выходе, а не на входе .
задан TylerH 27 March 2019 в 14:05
поделиться