XSS: 又叫跨站攻擊,根據(jù)攻擊類型分為以下三類:
1. 反射型 XSS -服務(wù)端沒有把用戶的輸入數(shù)據(jù)進(jìn)行標(biāo)簽過濾,直接在頁面上輸出。可能存在惡意代碼的鏈接,誘導(dǎo)其他人點(diǎn)擊進(jìn)而實(shí)施攻擊;
2. 存儲(chǔ)型 XSS – 常見于博客系統(tǒng)中,黑客將含有惡意代碼的數(shù)據(jù)直接寫入 文章 、評(píng)論中 存儲(chǔ)在服務(wù)器數(shù)據(jù)庫中,所有瀏覽這個(gè)文章,查看這個(gè)的用戶都會(huì)在瀏覽器上插入帶有惡意攻擊代碼。
3. 基于DOM的 XSS跨站腳本攻擊-通過修改DOM節(jié)點(diǎn)數(shù)據(jù)信息而形成的XSS攻擊。
XSS在線競(jìng)賽平臺(tái):http://xss-quiz.int21h.jp
解題思路:
http://blog.csdn.net/yd0str/article/details/17297971
XSS防范:
1. 利用HttpOnly ,HttpOnly是在set-cookie時(shí)進(jìn)行標(biāo)記,這樣的標(biāo)記 使得瀏覽器將禁止頁面的JavaScript訪問這類Cookie,解決了黑客利用腳本盜用cookie會(huì)話行為; 引用于PHP源碼文檔中的說明:
* @param httponly bool[optional] <p>
* When true the cookie will be made accessible only through the HTTP
* protocol. This means that the cookie won't be accessible by
* scripting languages, such as JavaScript. This setting can effectively
* help to reduce identity theft through XSS attacks (although it is
* not supported by all browsers). Added in PHP 5.2.0.
* true or false
2. 完善的輸入輸出檢查
防范基于反射型XSS 和 存儲(chǔ)型XSS:
必要的輸入檢查,對(duì)帳號(hào)密碼信息等輸入數(shù)據(jù)的合法性檢查。比如:只允許下劃線,字母,數(shù)字等數(shù)據(jù)規(guī)范,不允許不合規(guī)范的數(shù)據(jù)輸入。
必要的輸出檢查,對(duì)取出來的信息進(jìn)行HTML編碼處理,將可能存在導(dǎo)致XSS跨站腳本攻擊的惡意字符進(jìn)行編碼,對(duì)某些可能造成XSS攻擊的字符進(jìn)行過濾。
防范基于DOM的XSS:
依然把用戶要展現(xiàn)出來的信息進(jìn)行編碼處理,輸入的數(shù)據(jù)進(jìn)行合法檢測(cè)。
小結(jié):初步了解XSS,慢慢學(xué)習(xí)ing!!