2

We have Java EE backend for database access. Servlets ask for XML data and send XML response according to them. Now we have to write frontend for it. The idea is to communicate with backend through jQuery AJAX sending xml requests to Java backend and process data on client side.

Question is: Are there any security holes, and is it worth of writing frontend using Java/JSP?

4

2 回答 2

0

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

于 2013-04-24T02:55:28.637 回答
0

这是一个太笼统的问题,无法回答,但是在编写客户端应用程序时,您通常需要考虑:

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

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

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

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

  • 旧版浏览器
  • 新浏览器遇到了您还不知道的错误
  • 至关重要 - 搜索引擎

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

于 2013-04-24T22:01:53.887 回答