Как экранировать значения из атрибута HTML внутри jsp, чтобы избежать атаки XSS?
Внутри страницы jsp у меня есть атрибут входного значения, который заполняется следующим образом:
value="${param.name}"
Он уязвим для атаки XSS, если кому-то удастся что-то положить
"><script>doEvil();</script>
Как мне правильно избежать значения param.name чтобы исправить уязвимость ?
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