Межсайтовый скриптинг Плохая проверка ESAPI + JSF Fortify - PullRequest
0 голосов
/ 29 октября 2018

Я хотел бы закодировать атрибут значения с помощью библиотеки ESAPI, используя специальный метод: ESAPI.encoder (). EncodeForHTMLAttribute (). Мой вопрос должен ли я использовать этот метод в самом JSF или в MessageBean? Если бы я должен был закодировать это в JSF, это правильный синтаксис?

<h3></f:verbatim><h:outputText id="frsubject" value="#{MessageBean.frSubject}" /><f:verbatim></h3>

<h3></f:verbatim><h:outputText id="frsubject" value=<%= ESAPI.encoder().encodeForHTMLAttribute("#{MessageBean.frSubject}") %> /><f:verbatim></h3>

Thansk @BalusC. Извините за поздний ответ, у меня также сложилось впечатление, что я буду в безопасности от xss-атак (используя JSF 1.2). Однако в отчете о фортификации приведено следующее объяснение:

Использование определенных конструкций кодирования, таких как тег с атрибутом escapeXml = "true" (поведение по умолчанию), предотвратить некоторые, но не все межсайтовые скриптовые атаки. В зависимости от контекста, в котором появляются данные, символы за пределами Basic <,>, &, и «которые закодированы в HTML, а те, которые находятся за пределами <,>, &,» и «, которые закодированы в XML, могут иметь метаменинг. Использование таких конструкций кодирования эквивалентно использованию слабого черного списка для предотвращения межсайтовых сценариев и может разрешить злоумышленнику внедрить вредоносный код, который будет выполняться в браузере. Потому что точное определение контекста в Статические данные анализатора Fortify сообщают даже о результатах межсайтового скриптинга. когда применяется кодирование и представляет их как межсайтовый скриптинг: проблемы плохой проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...