網(wǎng)站建設(shè)中,安全抵御抵御XSS攻擊是十分重要的,關(guān)系到網(wǎng)站安全。那么什么是XSS攻擊呢?
XSS攻擊全稱跨站腳本攻擊(Cross Site Scripting),是一種常見于 Web 應(yīng)用中的計算機(jī)安全漏洞。惡意攻擊者往 Web 頁面里嵌入惡意的客戶端腳本,當(dāng)用戶瀏覽此網(wǎng)頁時,腳本就會在用戶的瀏覽器上執(zhí)行,進(jìn)而達(dá)到攻擊者的目的。比如獲取用戶的 Cookie、導(dǎo)航到惡意網(wǎng)站、攜帶木馬等。
XSS 漏洞是由于對用戶提交的數(shù)據(jù)沒有經(jīng)過嚴(yán)格的過濾處理造成的,所以防御的原則就是不相信用戶輸入的數(shù)據(jù),對輸入進(jìn)行過濾,對輸出進(jìn)行編碼。
1、使用 XSS Filter
針對用戶提交的數(shù)據(jù)進(jìn)行有效的驗證,只接受我們規(guī)定的長度或內(nèi)容的提交,過濾掉其他的輸入內(nèi)容。比如:
表單數(shù)據(jù)指定值的類型:年齡只能是 int 、name 只能是字母數(shù)字等。
過濾或移除特殊的 html 標(biāo)簽:<script>、<iframe>等。
過濾 js 事件的標(biāo)簽:onclick、onerror、onfocus等。
2、html 實體
當(dāng)需要往 HTML 標(biāo)簽之間插入不可信數(shù)據(jù)的時候,首先要做的就是對不可信數(shù)據(jù)進(jìn)行 HTML Entity 編碼,在 html 中有些字符對于 HTML 來說是具有特殊意義的,所以這些特殊字符不允許在文本中直接使用,需要使用實體字符。 html 實體的存在是導(dǎo)致 XSS 漏洞的主要愿意之一,因此我們需要將實體轉(zhuǎn)化為相應(yīng)的實體編號。
3、JavaScript編碼
這條原則主要針對動態(tài)生成的JavaScript代碼,這包括腳本部分以及HTML標(biāo)簽的事件處理屬性(如onerror, onload等)。在往JavaScript代碼里插入數(shù)據(jù)的時候,只有一種情況是安全的,那就是對不可信數(shù)據(jù)進(jìn)行JavaScript編碼,并且只把這些數(shù)據(jù)放到使用引號包圍起來的值部分(data value)之中,除了上面的那些轉(zhuǎn)義之外,還要附加上下面的轉(zhuǎn)義:
\
轉(zhuǎn)成 \\
/
轉(zhuǎn)成 \/
;
轉(zhuǎn)成 ;
(全角;)
注意:在對不可信數(shù)據(jù)做編碼的時候,不能圖方便使用反斜杠\ 對特殊字符進(jìn)行簡單轉(zhuǎn)義,比如將雙引號 ”轉(zhuǎn)義成 \”,這樣做是不可靠的,因為瀏覽器在對頁面做解析的時候,會先進(jìn)行HTML解析,然后才是JavaScript解析,所以雙引號很可能會被當(dāng)做HTML字符進(jìn)行HTML解析,這時雙引號就可以突破代碼的值部分,使得攻擊者可以繼續(xù)進(jìn)行XSS攻擊;另外,輸出的變量的時候,變量值必須在引號內(nèi)部,避免安全問題;更加嚴(yán)格的方式,對除了數(shù)字和字母以外的所有字符,使用十六進(jìn)制\xhh 的方式進(jìn)行編碼。
4、Http Only cookie
許多 XSS 攻擊的目的就是為了獲取用戶的 cookie,將重要的 cookie 標(biāo)記為 http only,這樣的話當(dāng)瀏覽器向服務(wù)端發(fā)起請求時就會帶上 cookie 字段,但是在腳本中卻不能訪問 cookie,這樣就避免了 XSS 攻擊利用 js 的 document.cookie獲取 cookie。
很多地方都可能產(chǎn)生 XSS 漏洞,并且產(chǎn)生的方式不一樣,所以對于這些漏洞,我們需要找到正確的方法來防御。XSS 漏洞在不斷的發(fā)展,上面介紹的防御方法幾乎能夠解決大部分的 XSS 漏洞,即便這樣,我們也不能掉以輕心,為了讓 Web 應(yīng)用更安全,我們還需要結(jié)合其他的方法來加強(qiáng) XSS 防御。
隨著科技的不斷發(fā)展,Web 應(yīng)用變得越來越復(fù)雜,隨之而產(chǎn)生的漏洞(不僅限于 XSS ) 也越來越多。沒有什么方法能夠一次性解決所有安全問題,我們只能在實際的工作過程中,針對不同的安全漏洞進(jìn)行針對性的防御。
網(wǎng)站建設(shè)之后做推廣是目前較為流行的優(yōu)化方式,可以有效提高網(wǎng)站的排名,從而令網(wǎng)站為更多人所熟知,提高流量,只是對于大多數(shù)站長而言,較為在意的更多是費(fèi)用高低。...
在今天,幾乎所有企業(yè)都開始面向電子商務(wù)發(fā)展,建設(shè)具有電子商務(wù)功能的網(wǎng)站已是企業(yè)轉(zhuǎn)型的必要之選,是連接企業(yè)利用虛擬網(wǎng)絡(luò)與客戶聯(lián)系的紐帶。而成功的企業(yè)網(wǎng)站必須...
隨著互聯(lián)網(wǎng)的發(fā)展,手機(jī)網(wǎng)民的增多,手機(jī)端網(wǎng)站越來越受企業(yè)青睞。那么手機(jī)端網(wǎng)站和PC端網(wǎng)站在設(shè)計上有哪些不同呢?需要注意哪些點(diǎn)呢?1、移動網(wǎng)站頁面設(shè)計 &nbs...