国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅系統(tǒng)安全 應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 系統(tǒng)安全 >

AJAX代碼復(fù)雜性及安全性簡析

時(shí)間:2013-03-11 15:01來源: 點(diǎn)擊:
AJAX代碼復(fù)雜性及安全性簡析
Tags系統(tǒng)安全(735)javascript(4)AJAX(2)漏(4)  

  AJAX代碼復(fù)雜性

  一、多種語言和架構(gòu)

  客戶端:vbscript,javascript

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

  表現(xiàn)層:html css

  轉(zhuǎn)換語言:xml,xslt,SOAP

  查詢語言:SQL

  二、javascript特性

  1)解釋型語言,每一次錯誤都是運(yùn)行時(shí)錯誤。難重現(xiàn),難定位

  2)弱類型:對變量不做檢查,所有隱式聲明的變量都會被認(rèn)為是全局變量

  三、異步性

  一個(gè)通過異步方式處理數(shù)據(jù)的應(yīng)用程序會同時(shí)執(zhí)行多個(gè)線程,要正確協(xié)調(diào)好這些線程非常困難。最常見的問題就是競爭條件:e.g.銀行系統(tǒng)中的存取款功能,應(yīng)用程序只有在很大的負(fù)載壓力下才會暴露出線程方面的漏洞。

  AJAX應(yīng)用程序的常見漏洞

  1)像API一樣的web應(yīng)用程序,過度細(xì)化服務(wù)端API,使得攻擊者有機(jī)會控制程序的流程(透明性)

  2)API身份認(rèn)證問題

  3)與用戶相關(guān)的敏感數(shù)據(jù)硬編碼在代碼中,

  4)在javascript中會話狀態(tài),例如存儲在隱藏的表單域或者cookie中

  5)包含在客戶端的注釋及文檔。

  6)在客戶端進(jìn)行數(shù)據(jù)交換,將原始的數(shù)據(jù)轉(zhuǎn)換為HTML代碼,在許多情況下,返回的響應(yīng)信息中包含的都是XML或者JSON格式的原始數(shù)據(jù),

  AJAX透明性,可以通過代碼混淆來隱藏應(yīng)用程序邏輯的很好辦法。

  劫持AJAX應(yīng)用程序

  JavaScript的動態(tài)特性使得其他JavaScript程序可以自動修改某個(gè)AJAX應(yīng)用程序的源代碼。方法沖突(在同一個(gè)作用域內(nèi),最后聲明的同名方法會默認(rèn)覆蓋掉之前的方法聲明)不僅可以用來重寫某個(gè)方法的實(shí)現(xiàn),還可以被動監(jiān)視程序中的數(shù)據(jù)流向。任何人對客戶端代碼進(jìn)行反向工程分析,即使它是一部分一部分動態(tài)加載的。由某個(gè)用戶定義的方法不僅能覆蓋其他用戶定義的方法,還可以覆蓋像window.alert()這樣的內(nèi)置方法,甚至是原生的對象構(gòu)造方法。這使得攻擊者可以實(shí)現(xiàn)JSON劫持攻擊,竊取由AJAX返回的JSON內(nèi)容。

------分隔線----------------------------

推薦內(nèi)容