📜  AJAX安全

📅  最后修改于: 2020-12-04 05:22:16             🧑  作者: Mango


异步Java语言和XML(AJAX)是用于开发Web应用程序以提供丰富的用户体验的最新技术之一。由于它是一项新技术,因此有许多安全问题尚未完成,下面是AJAX中的一些安全问题。

  • 攻击面更多,因为有更多的输入要确保。

  • 它还公开了应用程序的内部功能。

  • 无法保护身份验证信息和会话。

  • 客户端和服务器端之间的界限非常狭窄,因此存在犯安全错误的可能性。

这是AJAX安全的示例-

2006年,使用XSS和AJAX的蠕虫感染了yahoo邮件服务,该服务利用了Yahoo Mail onload事件处理中的漏洞。打开受感染的电子邮件后,该蠕虫会执行其JavaScript,并将副本发送给受感染用户的所有Yahoo联系人。

动手

步骤1-我们需要尝试使用XML注入向允许的一组奖励中添加更多奖励。以下是方案的快照。

xml_injection

步骤2-确保使用Burp Suite拦截请求和响应。设置如下图所示。

burp_settings

步骤3-输入场景中给定的帐号。我们将能够获得我们有资格获得的所有奖励的清单。我们有资格获得5分之3的奖励。

xml_injection1

步骤4-现在让我们单击“提交”,看看我们在响应XML中得到了什么。如下所示,我们将符合条件的三项奖励作为XML传递给我们。

xml_injection2

步骤5-现在让我们编辑这些XML并添加其他两个奖励。

xml_injection3

步骤6-现在,所有奖励将显示给用户供他们选择。选择我们添加的内容,然后点击“提交”。

xml_injection4

步骤7-出现以下消息,“ *恭喜。您已成功完成本课程。”

预防机制

客户端-

  • 使用.innerText而不是.innerHtml。
  • 不要使用eval。
  • 不要依赖客户端逻辑来确保安全性。
  • 避免编写序列化代码。
  • 避免动态构建XML。
  • 切勿将机密传送给客户端。
  • 不要在客户端代码中执行加密。
  • 不要在客户端执行影响安全性的逻辑。

服务器端-

  • 使用CSRF保护。
  • 避免编写序列化代码。
  • 用户可以直接调用服务。
  • 避免手工构建XML,请使用框架。
  • 避免手工构建JSON,请使用现有框架。