Как только вы используете данные в не-HTML контексте, эти инструменты становятся бесполезными. Вставка пользовательских данных непосредственно в блок javascript была бы относительно распространенной ошибкой.
Кроме того, любой другой контекст, отличный от HTML, может привести к аналогичным проблемам. Например: помещение данных в некоторый код CSS, адрес электронной почты в конверте SMTP или использование данных в документе PDF.
Важно понимать контекст и код внедрения соответствующим образом. Шпаргалка по профилактике XSS, на которую вы ссылаетесь в OWASP, должна помочь вам ориентироваться в этом методе мышления. Никогда не думайте, что «один размер подходит всем» будет работать везде . Всегда думайте о том, куда вы помещаете ненадежные данные и как ими можно злоупотреблять.
Кроме того, эти библиотеки не совершенны и постоянно совершенствуются и исправляют ошибки. Например, HTMLPurifier недавно получил 2 XSS vul в 2010 . Ситуация также изменится теперь, когда HTML 5 будет более широко поддерживаться, так как это вводит ряд новых векторов внедрения .