1

我有一个简单的 Web 应用程序,我在其中使用来自 jsp 页面的 ajax(通过帖子)调用 java servlet。在 servlet 中,我从数据库中获取数据并制定 JSON 格式并在 jsp 页面中检索。然后,我使用 eval 函数解析 json 并使用 innerHTML 属性显示分区中的数据。不知何故,这种方法似乎容易受到 xss 攻击。有人可以提供一些关于如何在这个用例中防止 XSS attck 的指示吗?

4

2 回答 2

1

这听起来像是基于 DOM 的 XSS。有几种方法可以防止基于 DOM 的 XSS。您必须对服务器或客户端上的数据进行 html 编码。应始终避免在数据库中使用 HTML 编码数据,因为它会更改数据的值并影响数据的排序方式等。 XSS 是一个输出问题,因此它应该通过构建 HTML 的代码来解决,在您的情况下是 JavaScript。

于 2012-07-04T19:12:01.957 回答
0

较新的浏览器支持 JSON.parse()。对于较旧的浏览器,请使用 json2.js。

您还应该正确编码 JSON,以便值不会超出引号等。找到一个体面的 json 编码器并在服务器端使用它。

于 2012-07-06T05:52:49.047 回答