|
Q7:加密是否能有效防護(hù)XSS攻擊?
通常大家會認(rèn)為如果網(wǎng)站使用了HTTPS,提供更有保障的安全,可以幸免于XSS攻擊。其實這是一種誤解。HTTPS僅提供傳輸層的安全,在應(yīng)用層仍然面臨XSS的威脅。
Q8:XSS漏洞是否可能引起非法執(zhí)行命令?
如果瀏覽器設(shè)置安全性不夠時,XSS漏洞允許插入JavaScript,也就意味著攻擊者可能獲取受限的客戶端執(zhí)行權(quán)限。如果攻擊者進(jìn)而利用瀏覽器的漏洞,就有可能在客戶端非法執(zhí)行命令。簡言之,XSS漏洞有助于進(jìn)一步利用瀏覽器漏洞。
Q9:從網(wǎng)站開發(fā)者角度,如何防護(hù)XSS攻擊?
來自應(yīng)用安全國際組織OWASP的建議[3],對XSS最佳的防護(hù)應(yīng)該結(jié)合以下兩種方法:驗證所有輸入數(shù)據(jù),有效檢測攻擊;對所有輸出數(shù)據(jù)進(jìn)行適當(dāng)?shù)木幋a,以防止任何已成功注入的腳本在瀏覽器端運行。具體如下:
·輸入驗證:某個數(shù)據(jù)被接受為可被顯示或存儲之前,使用標(biāo)準(zhǔn)輸入驗證機(jī)制,驗證所有輸入數(shù)據(jù)的長度、類型、語法以及業(yè)務(wù)規(guī)則。
·強(qiáng)壯的輸出編碼:數(shù)據(jù)輸出前,確保用戶提交的數(shù)據(jù)已被正確進(jìn)行entity編碼,建議對所有字符進(jìn)行編碼而不僅局限于某個子集。
·明確指定輸出的編碼方式(如ISO 8859-1或 UTF 8):不要允許攻擊者為你的用戶選擇編碼方式。
·注意黑名單驗證方式的局限性:僅僅查找或替換一些字符(如"<" ">"或類似"script"的關(guān)鍵字),很容易被XSS變種攻擊繞過驗證機(jī)制。
·警惕規(guī)范化錯誤:驗證輸入之前,必須進(jìn)行解碼及規(guī)范化以符合應(yīng)用程序當(dāng)前的內(nèi)部表示方法。請確定應(yīng)用程序?qū)ν惠斎氩蛔鰞纱谓獯a。
Q10:從網(wǎng)站用戶角度,如何防護(hù)XSS攻擊?
當(dāng)你打開一封Email或附件、瀏覽論壇帖子時,可能惡意腳本會自動執(zhí)行,因此,在做這些操作時一定要特別謹(jǐn)慎。建議在瀏覽器設(shè)置中關(guān)閉JavaScript。如果使用IE瀏覽器,將安全級別設(shè)置到“高”。具體可以參照瀏覽器安全的相關(guān)文章。
這里需要再次提醒的是,XSS攻擊其實伴隨著社會工程學(xué)的成功應(yīng)用,需要增強(qiáng)安全意識,只信任值得信任的站點或內(nèi)容。
Q11:如果修補(bǔ)XSS漏洞對網(wǎng)站來說困難較大,不修補(bǔ)會怎樣?
如果不能及時修補(bǔ)XSS漏洞,網(wǎng)站可能成為攻擊者攻擊第三方的媒介,公信度受損;網(wǎng)站用戶成為受害者,敏感信息泄漏。現(xiàn)實中,確實存在某些無法修補(bǔ)漏洞的客觀原因,如Web應(yīng)用開發(fā)年代久遠(yuǎn)或者整改代碼需要付出過于高昂的代價。這種情況下, 選擇Web安全網(wǎng)關(guān)會是一種合理選擇。正確應(yīng)用這類安全工具,會極大緩解XSS攻擊,降低安全風(fēng)險。
Q12:下一代XSS會是怎樣的?
隨著AJAX(Asynchronous JavaScript and XML,異步JavaScript和XML)技術(shù)的普遍應(yīng)用,XSS的攻擊危害將被放大。使用AJAX的最大優(yōu)點,就是可以不用更新整個頁面來維護(hù)數(shù)據(jù),Web應(yīng)用可以更迅速地響應(yīng)用戶請求。AJAX會處理來自Web服務(wù)器及源自第三方的豐富信息,這對XSS攻擊提供了良好的機(jī)會。AJAX應(yīng)用架構(gòu)會泄漏更多應(yīng)用的細(xì)節(jié),如函數(shù)和變量名稱、函數(shù)參數(shù)及返回類型、數(shù)據(jù)類型及有效范圍等。AJAX應(yīng)用架構(gòu)還有著較傳統(tǒng)架構(gòu)更多的應(yīng)用輸入,這就增加了可被攻擊的點。 |
|
【收藏】【打印】【進(jìn)入論壇】 |
|
|
|
|
|
|
|