查看: 1491|回复: 25

AJAX复杂性及安全性

[复制链接]
发表于 2012-12-23 03:17:59 | 显示全部楼层 |阅读模式

AJAX代码复杂性

一、多种语言和架构
客户端:vbscript,javascript
服务器端:java,c#,php,ruby on rails,python,perl
表现层:html css
转换语言:xml,xslt,SOAP
查询语言:SQL
二、javascript特性
1)解释型语言,每一次错误都是运行时错误。难重现,难定位
2)弱类型:对变量不做检查,所有隐式声明的变量都会被认为是全局变量
三、异步性
一个通过异步方式处理数据的应用程序会同时执行多个线程,要正确协调好这些线程非常困难。最常见的问题就是竞争条件:e.g.银行系统中的存取款功能,应用程序只有在很大的负载压力下才会暴露出线程方面的漏洞。

AJAX应用程序的常见漏洞
1)像API一样的web应用程序,过度细化服务端API,使得攻击者有机会控制程序的流程(透明性)
2)API身份认证问题
3)与用户相关的敏感数据硬编码在代码中,
4)在javascript中存储会话状态,例如存储在隐藏的表单域或者cookie中
5)包含在客户端的注释及文档。
6)在客户端进行数据交换,将原始的数据转换为HTML代码,在许多情况下,返回的响应信息中包含的都是XML或者JSON格式的原始数据,

AJAX透明性,可以通过代码混淆来隐藏应用程序逻辑的很好办法。



劫持AJAX应用程序
JavaScript的动态特性使得其他JavaScript程序可以自动修改某个AJAX应用程序的源代码。方法冲突(在同一个作用域内,最后声明的同名方法会默认覆盖掉之前的方法声明)不仅可以用来重写某个方法的实现,还可以被动监视程序中的数据流向。任何人都可以对客户端代码进行反向工程分析,即使它是一部分一部分动态加载的。由某个用户定义的方法不仅能覆盖其他用户定义的方法,还可以覆盖像window.alert()这样的内置方法,甚至是原生的对象构造方法。这使得攻击者可以实现JSON劫持攻击,窃取由AJAX返回的JSON内容


发表于 2012-12-23 22:25:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-12-25 18:11:04 | 显示全部楼层
我来了~~~~~~~~~ 闪人~~~~~~~~~~~~~~~~  
发表于 2012-12-28 07:51:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-1-1 09:38:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-1-1 16:28:57 | 显示全部楼层
呵呵 高高实在是高~~~~~  
发表于 2013-1-5 05:45:34 | 显示全部楼层
赚点分不容易啊  
发表于 2013-1-5 16:10:32 | 显示全部楼层
加油站加油  
发表于 2013-1-5 17:21:56 | 显示全部楼层
昨晚多几分钟的准备,今天少几小时的麻烦。  
发表于 2013-1-6 04:52:33 | 显示全部楼层
必须顶  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则