Я только что сделал простой тест, и следующая строка не содержит ошибок синтаксиса и работает без выбрасывания исключения установлена ли атрибут urlPrefix
или нет:
<a href="<%=request.getAttribute("urlPrefix")%>/content/edit">Add Content</a>
Синтаксической ошибки вообще нет. В случае там быть не установлен не urlPrefix
атрибут, полученный HTML является:
<a href="null/content/edit">Add Content</a>
В случае urlPrefix
равен http://example.com
, полученный HTML является:
<a href="http://example.com/content/edit">Add Content</a>
Вот быстрый маленький автономный test.jsp
файл, чтобы продемонстрировать:
<% request.setAttribute("urlPrefix", "http://example.com"); %>
<a href="<%=request.getAttribute("urlPrefix")%>/content/edit">Add Content</a>
Вы можете удалить первую строку, чтобы проверить null
кейс.
Итак, мы продемонстрировали, что линия, которую вы опубликовали как предполагаемую оскорбительную линию, на самом деле не проблематична. Некоторые возможности:
- Вы уверены, что искали подходящую строку?
- Вы уверены, что искали правильный файл?
- Вы уверены, что используете эту программу?
- Вы уверены, что ищете правильный URL-адрес/среду?
Но не забудьте защитить от [атак XSS] (https://www.owasp.org/index.php/Top_10_2010-A2-Cross-Site_Scripting_ (XSS)). – Asaph
@Asaph: согласен, но как конкретно это решение? Все остальные предложения являются безопасными (или небезопасными), как мои. Все зависит от того, что находится в urlPrefix и откуда оно происходит. –
Извините, что выбрал именно ваш ответ, но я подумал, что стоит упомянуть. Я мог бы оставить этот комментарий на любой другой ответ, который, я полагаю (но не хотел оставлять его на другом другом). Обычно я указываю случайную XSS и SQL-инъекцию всякий раз, когда вижу это. Я думаю, что повышение осведомленности стоит того. Это делает Интернет более безопасным. – Asaph