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