Как экранировать значения из атрибута HTML внутри jsp, чтобы избежать атаки XSS?



Внутри страницы jsp у меня есть атрибут входного значения, который заполняется следующим образом:



value="${param.name}"


Он уязвим для атаки XSS, если кому-то удастся что-то положить



"><script>doEvil();</script>


Как мне правильно избежать значения param.name чтобы исправить уязвимость ?

504   1  

1 ответ:

Использовать JSTL fn:escapeXml() функция.

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<input value="${fn:escapeXml(param.name)}" />

Альтернативой является использование приличного фреймворка MVC,предлагающего taglibs для представления входных элементов HTML, которые уже неявно экранируют XML/HTML, такие как JSF и Spring MVC, так что вам не нужно повторять одно и то же по всему месту и беспокоиться о случайном пропуске одного.

См. также:

Comments

    Ничего не найдено.