1. 程式人生 > >WEB攻擊手段及防禦第1篇-XSS

WEB攻擊手段及防禦第1篇-XSS

 

概念

XSS全稱為Cross Site Script,即跨站點指令碼攻擊,XSS攻擊是最為普遍且中招率最多的web攻擊方式,一般攻擊者通過在網頁惡意植入攻擊指令碼來篡改網頁,在使用者瀏覽網頁時就能執行惡意的操作,像html、css、img都有可能被攻擊。

像前不久微信貌似就中招,好像是在朋友圈傳送一個帶有指令碼的連結,然後通過點選該連結就會彈出一個提示,雖然沒有造成什麼影響,但這是XSS攻擊最鮮明的特點。

 

分類

XSS現在主要分為以下兩種攻擊型別:

1、反射型漏洞

這種型別攻擊者一般通過在網頁中嵌入含有惡意攻擊指令碼的連結,或者通過傳送帶指令碼的連結給受害者,這個指令碼連結是攻擊者自己的伺服器,使用者通過點選該連結就能達到攻擊的目的。如http://www.test.com/p=<script src=... />,這樣受害者的網頁就嵌入了這段指令碼,受害者通過點選連結觸發攻擊指令碼。

新浪微博曾經就出現過一次較為嚴重的XSS攻擊事件,攻擊者通過傳送一個帶有連結的微博誘導使用者點選,通過點選指令碼連結大量使用者自動傳送某些不良資訊和私信並自動關注攻擊者的微博賬號,這是典型的反射型漏洞。

這次新浪微博事件顯然是一次推廣營銷而已,並沒有嚴重影響新浪的服務,然而現實中攻擊者可以通過竊取使用者cookie獲取使用者名稱密碼等重要資訊來偽造使用者交易、竊取使用者的財產等影響使用者財產安全的惡意行為。

 

2、儲存型漏洞

這種型別是影響最為廣泛的且危害網站安全自身的攻擊方式,攻擊者通過上傳惡意指令碼到網站伺服器或儲存到資料庫中,惡意指令碼就會包含在網頁中,這樣會導致所有瀏覽該網頁的使用者有中招的可能。這種攻擊型別一般常見在部落格、論壇等網站中。

 

防禦手段

1、危險字元過濾

即對使用者輸入的危險字元進行轉義,如>轉義為"&gt",<轉義為"&lt" ,如果被轉義有誤解,可以對<script src=..這種型別的<才進行轉義,這樣就能避免大部分的XSS攻擊。

 

2、使用http only的cookie

httpOnly由微軟在IE中提出,禁止使用者在瀏覽器中通過指令碼訪問帶有httpOnly的cookie。有了這個特性,如果是使用者敏感資訊儲存在cookie中的,可以通過在cookie加下httpOnly屬性避免XSS攻擊cookie造成使用者資訊洩漏。

 

最後,雖然這些攻擊方式都有對應的防禦手段,但是這些攻擊方式也有日異月新的變化和發展,在開發web專案時也一定要重視XSS指令碼攻擊帶來的危害,及時加強防禦,不要讓攻擊有可乘之機。