0

在静态分析期间,我的 JSP 代码中出现 XSS 漏洞。实际上,我正在将请求从我的 servlet 转发到 JSP 页面。Requets 包含一个 JSON 字符串。在 JSP 页面中,我正在从此 JSON 对象中检索 appId 值。我使用这个 appId 值通过 XHR 调用检索更多信息。

<script type="text/javascript">
var appId;
// appContext is JSON string
var appContextStr=<%=request.getParameter("appContext")%>; // XSS Vulenrability detected

if(appContextStr!= null || !appContextStr.equals("")){
appId= appContextStr.appId;
}
</script>

如何解决这个 XSS 问题?

4

2 回答 2

0

由于提交的数据应该是 JSON:

  1. 尝试将其解析为 JSON(使用服务器端 Java)
  2. 将其序列化回 JSON
  3. 将其包含在文档中
于 2013-04-19T09:23:50.563 回答
0

如果您的值不包含非字母数字符号,则可以在将其分配给 appContextStr 之前对 <%=request.getParameter("appContext")%> 进行 URLencode。

如果有人(不是用户本人)可以使用类似的值指定 appContext,那么现在的漏洞将会触发

“asdsa; alert('busted')” 实际上是邪恶的 javascript 而不是 alert()

也就是说,并非所有用户控制的 JSON 都是可利用的,但静态分析工具仍然抱怨任何甚至远程的可能性。

于 2013-04-20T07:05:34.043 回答