如何在 JSP scriptlet 异常中防止 XSS?
How do I prevent XSS in JSP scriptlet exceptions?
我有一个 JSP 页面,其中的 scriptlet 形式为
<%
String imageId = request.getParameter("imageId");
if(getImageById == null){
throw new JspException("No data found for " + imageId);
}
%>
异常抛出时,打印请求参数"imageId",允许XSS攻击
清理 Exception() 的输入以防止出现这种情况的最佳方法是什么?
这取决于图像 id 应该是什么。
如果它是一个数字,那么首先尝试解析它。如果您需要字符串数据(如 GUID),您应该检查它是否符合规范。
在任何一种情况下 - 如果 Id 无效则不要将其传回 - 只说没有找到数据。
如果 ID 可以是任意一组随机字符,则在 JSP 端使用 JSTL
<c:out value="${myId}"/>
或
escapeXml(myId)
来自
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="t" %>
这可能有帮助:How can I escape special HTML characters in JSP?
或者这样:Recommended method for escaping HTML in Java
这是 OWASP 的消毒剂:https://github.com/owasp/java-html-sanitizer
我有一个 JSP 页面,其中的 scriptlet 形式为
<%
String imageId = request.getParameter("imageId");
if(getImageById == null){
throw new JspException("No data found for " + imageId);
}
%>
异常抛出时,打印请求参数"imageId",允许XSS攻击
清理 Exception() 的输入以防止出现这种情况的最佳方法是什么?
这取决于图像 id 应该是什么。
如果它是一个数字,那么首先尝试解析它。如果您需要字符串数据(如 GUID),您应该检查它是否符合规范。
在任何一种情况下 - 如果 Id 无效则不要将其传回 - 只说没有找到数据。
如果 ID 可以是任意一组随机字符,则在 JSP 端使用 JSTL
<c:out value="${myId}"/>
或
escapeXml(myId)
来自
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="t" %>
这可能有帮助:How can I escape special HTML characters in JSP?
或者这样:Recommended method for escaping HTML in Java
这是 OWASP 的消毒剂:https://github.com/owasp/java-html-sanitizer