AJAX代码复杂性及安全性简析

AJAX代码复杂性

一、多种语言和架构

客户端:vbscript,javascript

服务器端:java,c#,php,ruby on rails,python,perl

表现层:html css

转换语言:xml,xslt,SOAP

查询语言:SQL

二、javascript特性

1)解释型语言,每一次错误都是运行时错误。难重现,难定位

2)弱类型:对变量不做检查,所有隐式声明的变量都会被认为是全局变量

三、异步性tt娱乐城 太阳娱乐城 博彩网 香港六和彩 股票t+0 股票t+0开户 3d开奖结果 百家乐 六合采资料 liuhecai

一个通过异步方式处理数据的应用程序会同时执行多个线程,要正确协调好这些线程非常困难。最常见的问题就是竞争条件: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内容。

(责任编辑:adminadmin2008)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

开源发家史:Linux在为谁代言?

开源发家史:Linux在为谁代言?

开源,也被称为开放源代码(Open Source) 开源(Open Source) 开源运动起源于20实际60年...[详细]

作为码农,我们为什么要写作

作为码农,我们为什么要写作

在程序员这个行业,坚持做技术写作的人一直比较少。我和身边的朋友沟通后,发现他们除...[详细]

键盘敲击识别技术真的靠谱吗?

键盘敲击识别技术真的靠谱吗?

所有人都知道密码是靠不住的。于是现在有一个有意思的行为生物识别是你是如何打字的,...[详细]

干货!企业安全产品采购指南

干货!企业安全产品采购指南

作为一个安全行业的客户,怎么知道什么样的技术、产品和服务将会满足自身的需求?本文...[详细]

作为程序员,你必须了解这些关于计算机的知

作为程序员,你必须了解这些关于计算机的知识

存储-块设备,文件系统,集群文件系统,分布式文件系统,光纤SCSI,iSCSI,RAID等。 ...[详细]

返回首页 返回顶部