XSS跨站腳本攻擊及漏洞防御
跨站腳本攻擊XSS,是最普遍的Web應(yīng)用安全漏洞。這類漏洞能夠使得攻擊者嵌入惡意腳本代碼到正常用戶會(huì)訪問到的頁面中,當(dāng)正常用戶訪問該頁面時(shí),則可導(dǎo)致嵌入的惡意腳本代碼的執(zhí)行,從而達(dá)到惡意攻擊用戶的目的。
什么是XSS跨站腳本攻擊
XSS 的定義
跨站腳本攻擊(cross-site scripting,簡(jiǎn)稱?XSS),是黑客用來潛入?Web?應(yīng)用程序的最普遍的應(yīng)用程序?qū)庸糁弧9粽咄鵚eb頁面里插入惡意html代碼,當(dāng)用戶瀏覽該頁面時(shí),嵌入Web里的html代碼會(huì)被執(zhí)行,從而達(dá)到惡意攻擊用戶的特殊目的。
XSS 的目的
盜走客戶端?cookies(相當(dāng)于我們打開房間的鑰匙),或者任何可以用于在?Web?站點(diǎn)確定客戶身份的其他敏感信息。獲取這些信息后,黑客就有了合法用戶的身份,從而可以冒充用戶與站點(diǎn)交互。
XSS 的危害
盜取各類用戶帳號(hào),如機(jī)器登錄帳號(hào)、用戶網(wǎng)銀帳號(hào)、各類管理員帳號(hào);
控制企業(yè)數(shù)據(jù),包括讀取、篡改、添加、刪除企業(yè)敏感數(shù)據(jù)的能力;
盜竊企業(yè)重要的具有商業(yè)價(jià)值的資料;
非法轉(zhuǎn)賬;
強(qiáng)制發(fā)送電子郵件;
網(wǎng)站掛馬;
控制受害者機(jī)器向其它網(wǎng)站發(fā)起攻擊
常見的 XSS
反射型XSS、存儲(chǔ)型XSS和DOM型XSS。
三種常見的XSS
反射型 XSS
反射型XSS,簡(jiǎn)單理解,即把用戶輸入的數(shù)據(jù)“反射”給瀏覽器。該類型只是簡(jiǎn)單地將用戶輸入的數(shù)據(jù)直接或未經(jīng)過完善的安全過濾就在瀏覽器中進(jìn)行輸出,導(dǎo)致輸出的數(shù)據(jù)中存在可被瀏覽器執(zhí)行的代碼數(shù)據(jù)。
攻擊者通常需要誘使用戶點(diǎn)擊惡意構(gòu)造的包含XSS代碼URL才能攻擊成功。當(dāng)用戶點(diǎn)擊惡意構(gòu)造的URL之后,在URL中的XSS代碼作為輸入提交到服務(wù)器端,服務(wù)器解析后響應(yīng),在響應(yīng)內(nèi)容中出現(xiàn)這段XSS代碼,最終這段XSS代碼被瀏覽器解析執(zhí)行。
存儲(chǔ)型 XSS
存儲(chǔ)型XSS腳本攻擊是指Web應(yīng)用程序會(huì)將用戶輸入的數(shù)據(jù)信息保存在服務(wù)端的數(shù)據(jù)庫(kù)或其他文件形式中,網(wǎng)頁進(jìn)行數(shù)據(jù)查詢展示時(shí),會(huì)從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)內(nèi)容,并將數(shù)據(jù)內(nèi)容在網(wǎng)頁中進(jìn)行輸出展示,因此存儲(chǔ)型XSS具有較強(qiáng)的穩(wěn)定性。
存儲(chǔ)型XSS腳本攻擊最為常見的場(chǎng)景就是在博客或新聞發(fā)布系統(tǒng)中,黑客將包含有惡意代碼的數(shù)據(jù)信息直接寫入文章或文章評(píng)論中,所有瀏覽文章或評(píng)論的用戶,都會(huì)在他們客戶端瀏覽器環(huán)境中執(zhí)行插入的惡意代碼。
DOM型 XSS
DOM就是文檔對(duì)象模型(Document Object Model),是在瀏覽器中展示文檔的一種結(jié)構(gòu)格式。DOM使用JavaScript動(dòng)態(tài)腳本來表示文檔的結(jié)構(gòu),比如表單字段或會(huì)話cookie。DOM同樣可以用作瀏覽器安全-例如,限制腳本獲取其他領(lǐng)域的cookie值。基于DOM的XSS缺陷可能會(huì)發(fā)生在當(dāng)前活動(dòng)的界面,比如一個(gè)JavaScript函數(shù)請(qǐng)求修改DOM元素,攻擊者可以利用當(dāng)前函數(shù)進(jìn)行攻擊。
常見的存儲(chǔ)型和反射型的XSS攻擊,需要將代碼發(fā)送到服務(wù)器端,然后將結(jié)果返回到瀏覽器。此種利用方式的代碼僅僅會(huì)在瀏覽器端執(zhí)行,不會(huì)發(fā)送到服務(wù)器端。
對(duì)于DOM XSS攻擊,通常不能進(jìn)行黑盒測(cè)試,因?yàn)樗枰牟皇强梢栽L問到源代碼,而是根據(jù)客戶端的代碼進(jìn)行攻擊。自動(dòng)化測(cè)試很少會(huì)發(fā)現(xiàn)基于DOM的XSS攻擊,因?yàn)樽詣?dòng)化測(cè)試是通過發(fā)送特定的字段來觀察服務(wù)器的響應(yīng)。
漏洞防御
在用戶提交參數(shù)前,將提交的字符、>、&、"?、'?、+、/等進(jìn)行轉(zhuǎn)義,嚴(yán)格控制輸出。
將輸入轉(zhuǎn)化為小寫對(duì)比,若匹配則過濾。
將cookie設(shè)置為http-only,js腳本將無法讀取到cookie信息。
純前端渲染,明確innerText、setAttribute、style,將代碼與數(shù)據(jù)分隔開。
避免不可信的數(shù)據(jù)拼接到字符串中傳遞給這些API,如DOM中的內(nèi)聯(lián)事件-,location、onclick、onerror、onload、onmouseover等,標(biāo)簽的href屬性,JavaScript的、setTimeout()、setInterval()等,都能把字符串作為代碼運(yùn)行。
對(duì)于不受信任的輸入,都應(yīng)該限定一個(gè)合理的長(zhǎng)度。
嚴(yán)格的CSP,禁止加載外域代碼,禁止外域提交,禁止內(nèi)聯(lián)腳本執(zhí)行等較為嚴(yán)格的方式。
智能云網(wǎng)
智能云網(wǎng)社區(qū)是華為專為開發(fā)者打造的“學(xué)習(xí)、開發(fā)、驗(yàn)證、交流”一站式支持與服務(wù)平臺(tái),該平臺(tái)涵蓋多領(lǐng)域知識(shí)。目前承載了云園區(qū)網(wǎng)絡(luò),云廣域網(wǎng)絡(luò),數(shù)通網(wǎng)絡(luò)開放可編程,超融合數(shù)據(jù)中心網(wǎng)絡(luò),數(shù)通網(wǎng)絡(luò)設(shè)備開放社區(qū)共五個(gè)場(chǎng)景。為了響應(yīng)廣大開發(fā)者需求,還提供了開發(fā)者交流、API?體驗(yàn)中心、多媒體課件、SDK工具包、開發(fā)者工具以及遠(yuǎn)程實(shí)驗(yàn)室共六大工具,讓開發(fā)者輕松開發(fā)。歡迎各位前來體驗(yàn)。
>>戳我了解更多<<
web前端 網(wǎng)絡(luò)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。