亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

動態JavaScript所造成一些你不知道的危害

2019-11-20 08:53:25
字體:
來源:轉載
供稿:網友

動態JavaScript

JavaScript代碼很多時候會通過服務器端的帶啊名來動態地組合到一起。在這個組合的過程中,與用戶相關的信息會保存到這些JavaScript的代碼中。當將這個JavaScript腳本傳送到瀏覽端的時候,客戶端的JavaScript會立即投入使用。但是實際情況是,這些腳本很有可能會被第三方的所引入,而引入這些腳本是沒有同源策略的限制的。因此,一個被攻擊者所控制的網頁很有可能同樣被包含引入動態生成的JavaScript腳本然后觀察這個腳本的執行情況以及可能存在的安全的問題。由于通過src方式導入的所有的JavaScript腳本和本地的腳本都是會共享全局變量的。因而,如果這樣的一個動態腳本包含了用戶的隱私數據,那么攻擊者就通過引入這個腳本的方式就能夠訪問到這些數據。這種方式也被稱之為跨站腳本包含(XSSI)。

JavaScript的語言特性

在動態Javacript的危害中主要是涉及到JavaScript的作用域、原型鏈繼承這2個特性。

作用域的問題

JavaScript作用域的問題相信很多人都有所了解,不了解可以通過網上搜索看看。不像Java、C++這樣的語言是存在塊級作用域的,JavaScript僅僅是存在函數作用域。這就意味著JavaScript引擎會為每一個函數分配一個作用域。在函數內部中定義的變量所在的作用域就是在函數內,這種作用域就叫做本地作用域。下面的代碼就很清楚地說明了全局作用域與本地作用域的區別。

原型鏈

在JavaScript中,每個創建的函數都有一個prototype(原型)屬性,這個屬性是一個指針,指向一個對象,而這個對象的用途是包含可以由特定類型的所有實例共享的屬性和方法。在JavaScript中主要是通過原型鏈的方式作為繼承的主要方法。其基本思想是利用原型讓一個應用類型繼承另一個應用類型的屬性和方法。當訪問一個對象的屬性的時候,JavaScript就去判斷當前這個對象本身是否含有這個屬性,如果不存在就在對象的原型屬性中尋找。

攻擊方式

由于HTM中的script標簽不受同源策略的影響。因而腳本資源能夠導入到跨域的頁面當中。雖然跨域的頁面不能夠直接訪問到這些腳本的源代碼,但是導入這個腳本之后可以觀察這個腳本在頁面中的執行情況。如果這樣的一個動態腳本包含有用戶的隱私數據,那么這種方式就有可能泄漏用戶的數據。

基于全局變量的攻擊

當導入的JavaScrpit中創建了一個全局變量,這個全局變量也是可以被頁面中的JavaScript代碼所訪問的。因此如果一個動態腳本將用戶的隱私數據賦值給了一個全局變量,那么攻擊者就可以通過全局變量就可以訪問到這個數據了。

假設在正常的腳本leak.js中的JavaScript代碼如下:

(function() { window.secret = "345a8b7c9d8e34f5";})();

可以看到,此腳本中將用戶的隱私數據賦值給了windows全局變量。

惡意站點的代碼為:

<script src="http://www.good.com/leak1.js"></script><script> var user_data= window.secret;  // send user data to hacker sendstolendata(user_data);</script>

當用戶訪問到了含有上面的惡意代碼的網站的時候,此網站就會通過window對象來獲取用戶數據然后發送給攻擊者。

重新定義全局API攻擊

由于JavaScript的動態性,導致很多的函數能夠被攻擊者重寫,即使是那些JavaScript內置的函數。如果一個動態的JavaScript腳本通過一個系統中內置函數來傳遞隱私數據,那么攻擊者在這個函數調用之前通過重寫這個函數,就可以獲取到用戶的隱私數據了。

假設在正常的腳本leak.js中的JavaScript的代碼如下:

(function() { var secret = "345a8b7c9d8e34f5"; JSON.stringify(secret);})();

可以發現,在這個代碼中,調用了JavaScript語言中自帶了的JSON.sttringify()的方法。而這個方法完全是可以被黑客所利用的。

以下是惡意站點中的代碼:

<script type="text/javascript"> JSON.stringify = function (user_data) {  sendstolendata(user_data); }</script><script type="text/javascript" src="http://www.good.com/leak.js"></script>

當用戶訪問此站點的時候,由于JSON.strinify()方法已經被攻擊者重寫了,所以當導入的leak.js的中的代碼執行,調用JSON.stringify()的方法的時候,實際上調用的是攻擊者所寫的方法。這樣用戶的信息就會被竊取了。

原型篡改

正如之前說過的一樣,javaScript是基于原型鏈的。當訪問對象的一個屬性的時候,JavaScript解釋器會通過原型鏈來進行尋找,直到找到這個屬性為止。在下面的這段代碼中,我們就會對這個問題有一個清晰的認識了。

假設在正常的腳本leak.js中的JavaScript的代碼如下:

(function(){ var arr = ["secret1","secret2","secret3"]; var x = arr.slice();})();

從代碼中可以看到,在arr數組中存在了3個與用戶有關的隱私數據。然后arr實例調用了slice()方法。很明顯這個方法是不存在的。因為arr實例本身沒有創建和聲明這個方法,同時在Array對象中也沒有這個方法。但是當出現一個這樣的情況的時候,程序并沒有報錯,只是說明這個slice方法不存在而已。所以在這樣的情況下,可能程序員也并不知道他所創建的arr實例有調用slice()這樣的一個方法。那么上面的這段代碼就很有可能會被攻擊者所利用。

以下是惡意站點的代碼:

<script type="text/javascript">Array.prototype.slice = function() { //send data to attacker sendToAttackBackend(this);}</script><script type="text/javascript" src="http://www.good.com/leak.js"></script>

當用戶訪問到這個含有惡意代碼的網站的時候,導入的leak.js中的JavaScript要執行slice方法執行的時候,就會調用攻擊者為Array添加的slice方法,這樣敏感數據就會發送到攻擊者了。

防范

開發人員在進行網站開發的時候,最好是將代碼與數據分開。敏感和重要的數據應該保存在單獨的文件中,這樣這些文件就不會被瀏覽器當作JavaScript來執行了。同時還需要為這些靜態資源設置訪問權限,只要在用戶登錄之后才可以訪問,在這種情況下攻擊者即使引入了這個靜態資源也無法訪問這個數據。

總結

以上就是關于動態JavaScript所造成危害的全部內容了,希望這篇文章能對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲国产日本| 欧美日韩亚洲系列| 日本久久精品视频| 亚洲综合在线中文字幕| 国产精品啪视频| 日韩欧美中文字幕在线播放| 久久九九精品99国产精品| 欧美高跟鞋交xxxxhd| 国产一区二区美女视频| 中文字幕一精品亚洲无线一区| 亚洲欧美日韩国产中文| 26uuu亚洲国产精品| 亚洲美女av在线| 亚洲国产精久久久久久久| 韩国美女主播一区| 成人h片在线播放免费网站| 日韩欧美精品在线观看| 国产精品久久久久久搜索| 亚洲国产精久久久久久| 欧美成人在线网站| 欧美日韩免费在线观看| 国产精品第七十二页| 欧美日韩视频免费播放| 国产美女搞久久| 国产剧情日韩欧美| 国产精品一区二区三区久久久| 成人国产精品久久久| 国产日韩在线观看av| 精品久久久久久中文字幕| 欧美成人免费va影院高清| 中文字幕日韩综合av| 成人欧美一区二区三区黑人| 亚洲欧美日韩另类| 亚洲午夜久久久久久久| 日韩电影中文字幕av| 亚洲精品国产精品国产自| 中文字幕在线国产精品| 欧美黑人视频一区| 亚洲精品中文字| 尤物九九久久国产精品的特点| 亚洲自拍av在线| 国产狼人综合免费视频| 91精品国产高清久久久久久久久| 日韩精品在线免费| 亚洲人成在线一二| 欧美美女操人视频| 久热精品视频在线观看| 亚洲人午夜色婷婷| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲精品www久久久| 色噜噜狠狠狠综合曰曰曰| 国产亚洲精品久久久久久牛牛| 日韩中文字幕在线视频| www日韩中文字幕在线看| 中文字幕日韩视频| 菠萝蜜影院一区二区免费| 色妞欧美日韩在线| 91高清视频在线免费观看| 日韩欧美在线视频观看| 欧美专区第一页| 成人在线国产精品| 亚洲免费福利视频| 欧美中文在线视频| 国产成人在线精品| 欧美精品xxx| 国产亚洲精品久久久久久777| 久久免费视频在线| 日韩高清电影免费观看完整| 日韩在线观看网址| www国产精品视频| 久久久国产精彩视频美女艺术照福利| 亚洲成在人线av| 亚洲精品中文字| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲欧洲日产国产网站| 88xx成人精品| 亚洲天堂男人天堂| 成人性生交大片免费看视频直播| 国产精品白嫩初高中害羞小美女| 欧美日韩国内自拍| 久久免费高清视频| 国产美女高潮久久白浆| 亚洲成av人乱码色午夜| 91精品国产一区| 久久久久久国产三级电影| 菠萝蜜影院一区二区免费| 久久97久久97精品免视看| 久久精品91久久久久久再现| 黑人巨大精品欧美一区二区免费| 亚洲欧美一区二区三区久久| 一区二区三区视频免费在线观看| 国产区亚洲区欧美区| 色婷婷亚洲mv天堂mv在影片| 久久韩国免费视频| 91成人精品网站| 欧美日韩xxx| 久久久精品视频在线观看| 欧美理论片在线观看| 国产精品偷伦视频免费观看国产| 欧美综合国产精品久久丁香| 欧美激情视频播放| 在线电影av不卡网址| 国产精品v片在线观看不卡| 国产精品麻豆va在线播放| 成人免费视频xnxx.com| 亚洲视频在线免费看| 91久久国产精品91久久性色| 日韩欧美在线中文字幕| 亚洲片在线资源| 日本高清+成人网在线观看| 国外日韩电影在线观看| 日韩国产激情在线| 日韩美女写真福利在线观看| 欧美成人三级视频网站| 亚洲精品中文字幕有码专区| 国产精品极品在线| 国产亚洲欧美另类中文| 美女福利精品视频| 国产做受69高潮| 日产精品99久久久久久| 亚洲丝袜av一区| 国产精品久久久久av| 亚洲欧美制服丝袜| 一区二区三区动漫| 在线看国产精品| 亚洲精品有码在线| 深夜福利亚洲导航| 国产不卡精品视男人的天堂| 最近2019免费中文字幕视频三| 不卡av日日日| 国产精品久久久久久久久粉嫩av| 国产精品pans私拍| 日本一区二区不卡| 91精品在线看| 亚洲国产一区二区三区四区| 北条麻妃99精品青青久久| 最新日韩中文字幕| 国产一区二区三区高清在线观看| 欧美黄色片在线观看| 国产专区精品视频| 亚洲视频axxx| 91免费在线视频网站| 日韩激情第一页| 亚洲精品中文字幕有码专区| 欧美在线亚洲一区| 欧美不卡视频一区发布| 亚洲美女av黄| 超碰精品一区二区三区乱码| 国产欧美精品一区二区三区-老狼| 中文字幕日韩在线视频| 91精品国产91久久久久久久久| 成人写真视频福利网| 最新国产精品拍自在线播放| 国产精品电影网| 欧美国产日韩一区二区在线观看| 日韩欧美中文在线| 中文字幕在线观看日韩| 国语自产精品视频在线看抢先版图片| 国产999在线观看| 日韩中文在线中文网在线观看| 欧美激情国产日韩精品一区18| 欧美电影第一页| 久久久久久九九九| 欧美亚洲国产成人精品|