AJAX安全

异步Javascript和XML(AJAX)是用于开发Web应用程序以提供丰富用户体验的最新技术之一.由于这是一项新技术,有许多安全问题尚待完成,以下是AJAX中的少数安全问题.

  • 攻击面更多,因为需要保护更多输入.

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

  • 未能保护身份验证信息和会话.

  • 客户端之间的界线很窄一边和服务器端,因此有可能犯下安全错误.

示例

以下是AJAX Security的示例;

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

Hands ON

第1步我们需要尝试使用XML注入为您允许的奖励集添加更多奖励.以下是该场景的快照.

xml_injection

第2步确保我们使用Burp Suite拦截请求和响应.设置如下所示.

burp_settings

第3步输入方案中给出的帐号.我们将能够获得我们有资格获得的所有奖励的列表.我们有资格获得5个奖励.

xml_injection1

第4步现在让我们点击"提交",看看我们在响应XML中得到了什么.如下所示,我们有资格获得的三个奖励将作为XML传递给我们.

xml_injection2

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

xml_injection3

第6步现在所有奖励都将显示给用户供他们选择.选择我们添加的那些,然后点击"提交".

xml_injection4

第7步出现以下消息:"*祝贺.您已成功完成本课程."

预防机制

客户端号;

  • 使用.innerText代替.innerHtml.

  • 不要使用eval.

  • 不要依赖客户端逻辑来保证安全.

  • 避免编写序列化代码.

  • 避免动态构建XML.

  • 永远不要将秘密传送给客户端.

  • 不要在客户端代码中执行加密.

  • 不执行安全影响逻辑在客户端.

服务器端去;

  • 使用CSRF保护.

  • 避免编写序列化代码.

  • 用户可以直接调用服务.

  • 避免手工构建XML,使用框架.

  • 避免手工构建JSON,使用现有框架.