HTML Purifier принимает HTML в качестве входных данных и создает HTML в качестве выходных данных. Его цель - разрешить пользователю вводить html с некоторыми тегами, атрибутами и значениями, одновременно отфильтровывая другие. При этом используется белый список для предотвращения любых данных, которые могут содержать сценарии. Так что это полезно для чего-то вроде редактора WYSIWYG.
Имена пользователей и пароли, с другой стороны, не HTML . Они простой текст , поэтому очиститель HTML не вариант. Попытка использовать HTML-очиститель здесь либо повредит данные, либо разрешит атаки XSS.
Например, он пропускает следующее без изменений, что может вызвать проблемы XSS при вставке в качестве значения атрибута в некоторые элементы:
" onclick="javascript:alert()" href="
Или если кто-то попытался использовать специальные символы в своем пароле и ввел:
<password
тогда их пароль станет пустым, и его будет намного легче угадать.
Вместо этого вы должны закодировать текст. Требуемая кодировка зависит от контекста, но вы можете использовать htmlentities
при выводе этих значений, если вы придерживаетесь rule # 0 и rule # 1 , на OWASP XSS Профилактическая шпаргалка