Java 如何防止JSP scriptlet中的XSS异常?
我有一个JSP页面,其中包含表单的脚本Java 如何防止JSP scriptlet中的XSS异常?,java,jsp,xss,Java,Jsp,Xss,我有一个JSP页面,其中包含表单的脚本 <% String imageId = request.getParameter("imageId"); if(getImageById == null){ throw new JspException("No data found for " + imageId); } %> 抛出异常时,将打印请求参数“imageId”,从而允许XSS攻击 要防止出现这种情况,最好的方法是什么来清理Exception()的输入?这取决于图像id
<%
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}"/>
从
这可能有助于:
或者这个:
以下是OWASP提供的消毒剂:它取决于图像id应该是什么 如果它是一个数字,那么首先尝试解析它。如果需要字符串数据(如GUID),请检查它是否符合规范 在任何一种情况下——如果Id无效,那么不要将其传回——只需说找不到数据即可 如果ID可以是任意一组随机字符,那么在JSP端使用JSTL
<c:out value="${myId}"/>
从
这可能有助于:
或者这个:
下面是OWASP提供的一个消毒剂:我在其他领域使用了标记和fn:escapeXml(),但我不能在scriptlet中使用它们中的任何一个,可以吗?我刚刚为Java添加了另一个SO问题。您需要显示ID吗?你还有关于身份证格式的信息吗?这不是我的代码。我可以查找一些ID的示例,但我不能确定我是否能够按照编写它的人的意图解释所有可能的有效形式。我希望像或fn:escapeXml这样简单的东西能够存在,但对于纯Java来说是不存在的。我需要修复代码,同时使其尽可能接近其功能形式,这意味着显示ID。第二个链接和第三个链接具有可以转义HTML的实用程序。您需要在代码库中包含该库。我在其他领域使用了标记和fn:escapeXml(),但在scriptlet中不能使用这两个,对吗?我刚刚为Java添加了另一个SO问题。您需要显示ID吗?你还有关于身份证格式的信息吗?这不是我的代码。我可以查找一些ID的示例,但我不能确定我是否能够按照编写它的人的意图解释所有可能的有效形式。我希望像或fn:escapeXml这样简单的东西能够存在,但对于纯Java来说是不存在的。我需要修复代码,同时使其尽可能接近其功能形式,这意味着显示ID。第二个链接和第三个链接具有可以转义HTML的实用程序。您需要在代码库中包含该库。
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="t" %>