[摘 " " " " "要] 隨著科技的發(fā)展以及網(wǎng)絡(luò)時(shí)代的到來,網(wǎng)絡(luò)開始被應(yīng)用到人們生活的方方面面,可以說網(wǎng)絡(luò)無處不在,從各個(gè)方面影響著人們的生活。但是對(duì)于網(wǎng)絡(luò)攻擊等概念還是顯得很模糊。基于這種情況,從靜態(tài)網(wǎng)站和動(dòng)態(tài)網(wǎng)站出發(fā),簡(jiǎn)要介紹跨站腳本攻擊的原理以及相應(yīng)的防范措施。
[關(guān) " 鍵 " "詞] " " 跨站腳本;攻擊原理;防范方法研究
[中圖分類號(hào)] "G718.3 " " " " " " " [文獻(xiàn)標(biāo)志碼] "A " [文章編號(hào)] "2096-0603(2015)20-0046-01
網(wǎng)絡(luò)給人們的生活帶來了無限的好處,人們可以通過網(wǎng)絡(luò)足不出戶地進(jìn)行訂餐、購(gòu)物、娛樂等,使人們的生活變得更加快捷、方便。然而網(wǎng)絡(luò)的大量使用也存在不小的安全問題,但是都沒有引起人們的重視。其主要原因是網(wǎng)絡(luò)安全問題,比如,跨站腳本攻擊等都比較隱蔽且不容易被人們發(fā)現(xiàn)。現(xiàn)在的跨站腳本攻擊具有非常獨(dú)特的特點(diǎn)。
一、跨站腳本攻擊原理
(一)靜態(tài)網(wǎng)站和動(dòng)態(tài)網(wǎng)站
現(xiàn)在網(wǎng)絡(luò)上有各種網(wǎng)站,但是只有兩種類型即動(dòng)態(tài)網(wǎng)站和靜態(tài)網(wǎng)站。所謂的靜態(tài)網(wǎng)站是指所在的網(wǎng)站網(wǎng)頁的內(nèi)容是固定不變的,當(dāng)用戶用瀏覽器進(jìn)行通過互聯(lián)網(wǎng)向該網(wǎng)站發(fā)送對(duì)應(yīng)的請(qǐng)求時(shí),這時(shí)網(wǎng)站的服務(wù)器會(huì)將過去已經(jīng)設(shè)計(jì)好的靜態(tài)HTML以文檔的形式傳送給需要瀏覽的瀏覽器;這里的動(dòng)態(tài)網(wǎng)站主要包括了動(dòng)態(tài)內(nèi)容和固定內(nèi)容,當(dāng)一個(gè)用戶借助瀏覽器發(fā)出服務(wù)請(qǐng)求時(shí),此時(shí)的網(wǎng)站服務(wù)器會(huì)根據(jù)客戶的需求進(jìn)行動(dòng)態(tài)的改變進(jìn)行響應(yīng),此時(shí)的用戶瀏覽器會(huì)受到動(dòng)態(tài)的網(wǎng)站頁面,而這個(gè)動(dòng)態(tài)的網(wǎng)站會(huì)根據(jù)用戶的需求提供動(dòng)態(tài)的服務(wù)和相關(guān)的輸出內(nèi)容。動(dòng)態(tài)網(wǎng)站與靜態(tài)網(wǎng)站相比有一個(gè)非常好的優(yōu)點(diǎn),就是沒有跨腳本威脅,這里稱為是“跨站腳本”,簡(jiǎn)稱(XSS)。
(二)跨站腳本介紹
對(duì)于一個(gè)網(wǎng)站的服務(wù)器由于各種原因接受了惡意的構(gòu)造數(shù)據(jù)時(shí),此時(shí)這個(gè)惡意數(shù)據(jù)會(huì)通過超鏈接的方式嵌入此服務(wù)器,可是這一數(shù)據(jù)是含有惡意內(nèi)容的。但是由于用戶對(duì)這方面并不了解一不小心就會(huì)點(diǎn)擊鏈接了,這時(shí)候跨站腳本就出現(xiàn)了。一般情況這種惡意鏈接都是來自不同的網(wǎng)站,有的也會(huì)以惡性郵件的形式存在或者是一些通信軟件的信息形式出現(xiàn)。此時(shí)攻擊者為了掩人耳目,會(huì)將這個(gè)惡意的鏈接進(jìn)行部分修改,將其內(nèi)部的二進(jìn)制代碼換成其他進(jìn)制的代碼,而用戶沒有分辨能力自然不會(huì)有所懷疑。進(jìn)入后一些敏感信息就會(huì)被嵌入的惡性網(wǎng)頁服務(wù)器接收到,此時(shí)這個(gè)網(wǎng)頁會(huì)向用戶發(fā)送一個(gè)惡意數(shù)據(jù)輸出,一旦進(jìn)入后就會(huì)被攻擊進(jìn)入到用戶正在使用的正常網(wǎng)站。
(三)跨站腳本攻擊過程
事實(shí)上,跨站腳本攻擊就是攻擊者設(shè)計(jì)的一個(gè)陷阱,通過網(wǎng)頁、郵件、信息等對(duì)正常網(wǎng)站嵌入惡意數(shù)據(jù)或代碼。一旦用戶點(diǎn)擊了這個(gè)網(wǎng)站,攻擊者就會(huì)將這個(gè)有惡意攻擊的頁面服務(wù)器發(fā)送給用戶通過超鏈接的方式對(duì)用戶的有用信息進(jìn)行竊取。所以可以看出不管是什么網(wǎng)站只要支持腳本的瀏覽器都可能受到攻擊,使攻擊用戶的信息被發(fā)送到攻擊者的網(wǎng)站中。
二、跨站腳本攻擊阻止與防范
(一)作為網(wǎng)站的開發(fā)人員
1.將編碼輸出
對(duì)于需要輸入的數(shù)據(jù)在其顯示前進(jìn)行對(duì)應(yīng)的編碼,這個(gè)可以借助于SPA的Server.HTMLEneode方法實(shí)現(xiàn),同時(shí)也可以借助Server.URLEneode方法。以上兩種方法可以將HTML標(biāo)記存在危險(xiǎn)隱患的字符進(jìn)行轉(zhuǎn)化。
2.過濾特殊字符的輸入?yún)?shù)
對(duì)于用戶輸入的數(shù)據(jù)對(duì)部分特殊的字符進(jìn)行移除或者是采取過濾的方法將其過濾掉。這里的特殊字符主要是指能夠在HTML上產(chǎn)生腳本的特殊字符。
3.將數(shù)據(jù)插入到innertext屬性
innertext屬性具有的特性是可以使任意內(nèi)容出現(xiàn)不起作用的現(xiàn)象,此時(shí)任何用戶輸入構(gòu)造內(nèi)容,對(duì)innertext使用都是安全的。
4.審查代碼中存在的XSS錯(cuò)誤
程序員寫網(wǎng)站程序代碼是對(duì)以上所有的程序入口,同時(shí)還要包括一些在表單中的字段,比如http,cookie等相關(guān)的數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行跟蹤;然后將以上所有需要流入網(wǎng)站的數(shù)據(jù)進(jìn)行跟蹤;確定這些數(shù)據(jù)是否與對(duì)應(yīng)的輸出有著一定關(guān)系;在檢查中如果發(fā)現(xiàn)與輸出有關(guān),就可以知道這并不是原始的數(shù)據(jù),是不是在外部被人處理過了。
(二)作為網(wǎng)絡(luò)用戶
為了很好地保護(hù)自己的信息安全,用戶在平時(shí)瀏覽網(wǎng)頁時(shí),要多加警惕。不要隨便瀏覽一些未知網(wǎng)站,在點(diǎn)擊一些鏈接時(shí)首先要找到網(wǎng)頁的源代碼。在用瀏覽器上網(wǎng)是不要運(yùn)行Javaseript和Activexf代碼。在平時(shí)上網(wǎng)時(shí)要保持良好健康的上網(wǎng)心態(tài),不要點(diǎn)擊隨意跳出來的網(wǎng)頁。
跨站腳本攻擊在網(wǎng)站攻擊危害是比較大的,這些年來各種網(wǎng)站的增多以及網(wǎng)絡(luò)時(shí)代的到來使得網(wǎng)名在瀏覽網(wǎng)站時(shí)受到的各種攻擊越來越多。由于網(wǎng)民一般沒有預(yù)防和識(shí)別跨站腳本攻擊的能力,所以很容易受到攻擊,導(dǎo)致自己的有用信息被惡意篡改或者被竊取給其帶來各種困擾。所以我們應(yīng)該更多地了解跨站腳本攻擊的原理以及相關(guān)的防范措施。
參考文獻(xiàn):
孫握瑜,張業(yè)睿.跨站腳本攻擊原理與防范方法研究[J].內(nèi)江科技,2010(5):140.