Первая десятка OWASP представляет широкий консенсус в отношении того, какие наиболее важные недостатки безопасности веб-приложений и лучшие методы защиты от них.Он рекомендует использовать Проект ESAPI OWASP для построения защиты от XSS.Этот проект ESAPI создал библиотеку кодирования, которая поставляется на различных языках, включая Java, .NET, PHP, Classic ASP, Cold Fusion, Python и Haskell.Он имеет инструменты для кодирования ненадежных данных для контекста, с которым вы имеете дело:
encodeForHTML
encodeForHTMLAttribute
encodeForJavaScript
encodeForCSS
encodeForURL
Он также имеет валидатор, который проверяет для контекста, к которому принадлежит ввод:
boolean isValidURL = ESAPI.validator().isValidInput("URLContext", userURL, "URL", 255, false);
Некоторые организации, использующие ESAPI, включают American Express, Apache Foundation, Booz Allen Hamilton, Aspect Security, Foundstone (McAfee), Hartford, Infinite Campus, Lockheed Martin, MITER, ВМС США - SPAWAR, Всемирный банк, SANSInstitute.
Я также рекомендую прочитать их XSS Prevention Cheat Sheet , в которой описываются лучшие методы построения вашей защиты от XSS (по сути, это сводится к тому, что вы ДОЛЖНЫ использовать синтаксис escape длячасть документа HTML, в которую вы помещаете ненадежные данные).