我有一个简单的Web应用程序,我在其中使用jsp页面中的ajax(通过post)调用java servlet。在servlet中,我从数据库中获取数据,并在jsp页面中制定JSON和retreive。然后我使用eval函数来解析json并使用innerHTML属性在分区中显示数据。不知何故,这种方法似乎容易受到xss攻击。有人可以提供一些关于如何在这个用例中防止XSS attck的指示吗?
答案 0 :(得分:1)
这听起来像DOM Based XSS。 preventing DOM Based XSS有几种方法。您必须对服务器或客户端上的数据进行html编码。应始终避免中的HTML编码数据,因为它会更改数据的值,并会影响数据的排序方式,等等。 XSS is an output problem所以它应该由构建HTML的代码解决,在你的例子中是JavaScript。
答案 1 :(得分:0)
较新的浏览器支持JSON.parse()。对于较旧的浏览器,请使用json2.js。
您还应该正确编码JSON,以便值不会超出引号等。找到一个像样的json编码器并在服务器端使用它。