在JSP页面中为XSON修复XSS

时间:2013-04-19 09:22:25

标签: javascript json jsp xss

在静态分析期间,我在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问题?

2 个答案:

答案 0 :(得分:0)

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

  1. 尝试将其解析为JSON(使用服务器端Java)
  2. 将其序列化为JSON
  3. 将其包含在文件中

答案 1 :(得分:0)

你可以URLencode&lt;%= request.getParameter(“appContext”)%&gt;在将其分配给appContextStr之前,如果您的值不具有非字母数字符号。

如果有人(不是用户本人)可以使用类似

的值指定appContext,则现在会触发漏洞

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

尽管如此,并非所有用户控制的JSON都是可利用的,但静态分析工具却对任何可能的远程可能性抱怨。