Java Weblogic xss漏洞:在jsp中解码html字符实体

Java Weblogic xss漏洞:在jsp中解码html字符实体,java,jsp,jakarta-ee,weblogic,xss,Java,Jsp,Jakarta Ee,Weblogic,Xss,我正在使用一个过滤器,通过编码jsp表单参数的html字符来防止xss 我使用${param}表达式在jsp中解析它们 这在tomcat中工作正常,因为值按原样解析,但在weblogic上,值被解码,导致XSS成功 我正在jsp中使用这个简单的代码来测试它 <c:set var="testing" value="eb011&quot;&gt;&lt;img src=a onerror=confirm(1)&gt;47379"/> <input t

我正在使用一个过滤器,通过编码jsp表单参数的html字符来防止xss

我使用${param}表达式在jsp中解析它们

这在tomcat中工作正常,因为值按原样解析,但在weblogic上,值被解码,导致XSS成功

我正在jsp中使用这个简单的代码来测试它

<c:set var="testing" value="eb011&quot;&gt;&lt;img src=a onerror=confirm(1)&gt;47379"/>
<input type="hidden" name="encoding" value="${testing }"/>

产生weblogic

<input type="hidden" value="eb011" name="encoding"><img onerror="confirm(1)" src="a">47379"/&gt;
47379“/

请告诉我为什么weblogic要解码html代码,以及可以采取哪些措施来防止它。

我一生中从未使用过weblogic,但我对XSS知之甚少。在使用了一些google之后,我发现了以下方法来编码weblogic中的html实体。我想这将对您有所帮助。

WebLogic Server提供WebLogic.servlet.security.Utils.encodeXSS()方法来替换用户提供的数据中的特殊字符。要使用此方法,请提供用户提供的数据作为输入。例如

发件人:

WebLogic Server提供WebLogic.servlet.security.Utils.encodeXSS()方法来替换用户提供的数据中的特殊字符。
out.print(defaultGreeting+“”+
weblogic.security.servlet.encodeXSS(名称)+“!”;

发件人:

<input type="hidden" value="eb011" name="encoding"><img onerror="confirm(1)" src="a">47379"/&gt;