Web攻擊手段--XSS攻擊及預防策略
XSS(Cross Site Scripting)攻擊的全稱是跨站指令碼攻擊,跨站指令碼攻擊的方式是惡意攻擊者在網頁中嵌入惡意指令碼程式,當用戶開啟網頁的時候指令碼程式便在客戶端執行,盜取客戶的cookie及使用者名稱和密碼,下載執行病毒及木馬程式,甚至獲得客戶端的admin許可權等。
XSS攻擊的方式
1.假設介面上存在一個輸入框用以讓使用者輸入資料<input type ="text" id = "user_name"></input>,此時惡意使用者在錄入資料的時候輸入的並不是使用者名稱,而是一段可執行的指令碼程式<srcipt>alert('f')</srcipt>,由於某種原因,這段程式碼在服務端驗證不通過,服務端重定向回這個頁面,並帶上使用者輸入的user_name引數,如下<input type ="text" id = "user_name"/><srcipt>alert('f')</srcipt>,這時頁面會彈出alert('f'),如果是一段惡意程式碼,後果不堪設想
2.惡意使用者可以發一個包含惡意指令碼的推廣連結給終端使用者,該連結經過URLEcode轉碼以迷惑使用者,一旦使用者點選,則惡意指令碼執行,對使用者造成危害。
3.使用者提交表單,資料儲存到資料庫中,需要到另一個介面去展示。這時惡意使用者輸入一段惡意指令碼,儲存在資料庫中。當頁面展示時,惡意指令碼被植入到頁面中,從而造成危害。例如在一篇非常火的部落格中嵌入危害程式碼。使用者瀏覽該部落格時,指令碼執行,從而達到惡意攻擊的目的。
XSS攻擊的防範
XSS攻擊造成的危害之所以會發生,是因為使用者的輸入變成了可執行的程式碼,因此我們要對使用者的輸入進行HTML轉義處理,將其中的尖括號,引號,單引號等特殊字元進行轉義編碼,例如“〈”轉義後為“<;”,“>”轉義後為“>;”,“'”轉義後為“&;”,“"”轉義後為“";”