XSS分為三類:
#反射型XSS(非持久型)發出請求時,XSS程式碼出現在URL中,作為輸入提交到伺服器端,伺服器端解析後回應,XSS程式碼隨回應內容一起傳回給瀏覽器,最後瀏覽器解析執行XSS程式碼。這個過程像是一次反射,故叫反射型XSS。
儲存型XSS(持久型)儲存型XSS和反射型XSS的差異僅在於,提交的程式碼會儲存在伺服器端(資料庫,內存,檔案系統等),下次請求目標頁面時不用再提交XSS代碼。
DOM XSS(客戶端)DOM XSS和反射型XSS、儲存型XSS的差異在於DOM XSS的程式碼並不需要伺服器參與,觸發XSS靠的是瀏覽器端的DOM解析,完全是客戶端的事情。
XSS的防禦措施:
#過濾轉義輸入輸出
避免使用eval、new Function等執行字串的方法,除非確定字串和使用者輸入無關
#使用cookie的httpOnly屬性,加上了這個屬性的cookie字段, js是無法進行讀寫的
使用innerHTML、document.write的時候,如果資料是使用者輸入的,那麼需要物件關鍵字元進行過濾與轉義
#推薦教學:web伺服器安全性
#以上是XSS分類及防禦措施的詳細內容。更多資訊請關注PHP中文網其他相關文章!