使用AJAX作为网站前端的危险

时间:2013-04-24 02:31:11

标签: java ajax security frontend

我们有Java EE后端用于数据库访问。 Servlet要求XML数据并根据它们发送XML响应。现在我们必须为它编写前端。这个想法是通过jQuery AJAX与后端进行通信,将xml请求发送到Java后端并在客户端处理数据。

问题是:是否有任何安全漏洞,是否值得使用Java / JSP编写前端?

2 个答案:

答案 0 :(得分:0)

无论您使用何种技术,都可能发生安全漏洞。 XML和& Jquery& Ajax和Java& JSP可以有安全漏洞。您必须考虑哪些信息存在于何处,黑客如何破解您的应用程序等。

答案 1 :(得分:0)

这是一个非常普遍的问题,但是在编写客户端应用程序时,通常需要考虑一下:

  • 确保输入验证和授权检查等安全控制仍在服务器端正确执行,而不是留给客户端控制的JavaScript进行整理。您不应该认为攻击者无法调用AJAX操作只是因为在UI中看不到这样做的功能;当注销或以其他用户身份登录时,让测试人员尝试手动发送对属于一个用户的资源的登录操作或操作的AJAX请求。

  • 确保客户端脚本没有任何HTML注入漏洞导致XSS漏洞。例如,在jQuery中使用html()(或相关的append()before()等操作方法)和一个包含变量的标记字符串 - 请改用$('<element>', {dynamic attributes})创建快捷方式。同样在普通JS中,首选createElement / setAttributeinnerHTML

  • 确保客户端脚本没有任何JS注入漏洞导致XSS漏洞。避免为超时或内联事件处理程序设置字符串;使用函数对象和正确的事件处理(例如jQuery .on())。

当考虑将应用程序编写为客户端JS + AJAX而不是中间层HTML +表单时,您必须要问的问题是,您的应用程序是否可以在不支持JavaScript的用户代理中无法使用需要:

  • 旧版浏览器
  • 新浏览器遇到你还不知道的bug
  • 至关重要 - 搜索引擎

如果你对此感到满意,并做了额外的工作以使JS可用/可访问,那么它就有意义。