Я поддерживаю устаревшее приложение, использующее JSF (и JSP). Я делаю все возможное, чтобы предотвратить XSS, добавляя валидаторы и escape-последовательности в код по мере необходимости. Я новичок в JSF.
Пример кода (в xhtml):
<h:form id="someForm">
<f:param name="someProperty" value="#{someBean.someProperty}"/>
</h:form>
Моя проблема Наш сканер безопасности говорит, что это уязвимо для отражения XSS. Я хотел бы добавить побег к значению свойства.
Мое исследование: я читал, что JSF обычно автоматически экранирует все в . У него есть параметр, который вы должны установить на fales, чтобы отключить это. Однако, кажется, не имеет этой функции. Я нашел предложенный фрагмент кода, который может работать:
<f:param name="someProperty" value="#{fn:escapeXml(someBean.someProperty)}"/>
Однако когда я использую fn:escapeXml, страница не загружается. Как это обычно решается?
Обратите внимание, что это важное устаревшее приложение. Желательны действия с наименьшим уклонением.
Вышеупомянутая статья: JSF 2.0; escape=false альтернатива для предотвращения XSS?