Анализатор JSP обрабатывает комментарии HTML как текст шаблона .Он не игнорирует его содержимое.HTML-комментарии игнорируются только синтаксическими анализаторами / интерпретаторами HTML (веб-браузерами!).Вместо этого следует использовать комментарии JSP, чтобы запретить обработчику JSP обрабатывать определенный фрагмент кода.
<%-- <%=paramName%>=<%=request.getParameter(paramName)%><BR> --%>
Обратите внимание на стиль <%-- --%>
, а не на стиль <!-- -->
HTML-комментариев.Анализатор JSP не будет их анализировать, но удаляет их из выходных данных.Таким образом, вы не увидите их в сгенерированном выводе HTML.
Риск XSS здесь, потому что вы не экранируете контролируемый пользователем ввод здесь.Параметры запроса полностью контролируются конечными пользователями.Конечный пользователь может, например, передать --><script>alert('xss')</script><!--
в качестве значения параметра, и он будет выполнен.Это открывает двери для атак XSS и CSRF .Вредоносный скрипт может, например, отправить все куки-файлы с помощью ajax-запроса на вредоносный сервер.Затем злоумышленник может просто скопировать значение cookie, чтобы иметь возможность войти в систему как вы сами.
Вы должны использовать тег JSTL c:out
или fn:escapeXml
, чтобы избежать ввода, управляемого пользователем,Я подробно отвечал на это несколько раз, под каждым здесь .Более подробное описание CSRF можно найти в моем ответе здесь .