問.xss是什么?運行原理?攻擊方式?如何預(yù)防?
是什么:
xss俗稱跨站腳本攻擊(cross site Scripting),攻擊者通過在網(wǎng)頁中添加惡意的script代碼,當用戶請求網(wǎng)頁時,執(zhí)行惡意的script代碼,以達到攻擊目的。
運行原理:
攻擊者對含有漏洞的服務(wù)器發(fā)起XSS攻擊(注入JS代碼)。
誘使受害者打開受到攻擊的服務(wù)器URL。
受害者在Web瀏覽器中打開URL,惡意腳本執(zhí)行。
攻擊類型:
反射型: 發(fā)出請求時,XSS代碼出現(xiàn)在URL中,作為輸入提交到服務(wù)器端,服務(wù)器端解析后響應(yīng),XSS隨響應(yīng)內(nèi)容一起返回給瀏覽器,最后瀏覽器解析執(zhí)行XSS代碼,這個過程就像一次發(fā)射,所以叫反射型XSS。
存儲型XSS和反射型的XSS差別就在于,存儲型的XSS提交的代碼會存儲在服務(wù)器端(數(shù)據(jù)庫,內(nèi)存,文件系統(tǒng)等),下次請求目標頁面時不用再提交XSS代碼。
如何預(yù)防:
編碼防御:對用戶輸入的數(shù)據(jù)進行HTML Entity編碼
編碼過濾:移除用戶上傳的DOM屬性,如onerror等,移除用戶上傳的style節(jié)點,script節(jié)點,iframe節(jié)點。例如PHP語言可以使用htmlspecialchars()函數(shù)將數(shù)據(jù)轉(zhuǎn)實體。
編碼校正:避免直接對HTML Entity編碼,使用DOM Prase轉(zhuǎn)換,校正不配對的DOM標簽。
問.csrf是什么?運行原理?攻擊方式?如何預(yù)防?
是什么:
csrf是跨站請求偽造。簡單的說和xss跨站腳本攻擊是一樣的,但它與XSS非常不同,XSS利用站點內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進行防范的資源也相當稀少)和難以防范,所以被認為比XSS更具危險性。
運行原理:
登錄受信任網(wǎng)站A,并在本地生成Cookie。
在不登出A的情況下,訪問危險網(wǎng)站B。
攻擊方式:
1.登錄受信任網(wǎng)站A,并在本地生成Cookie。
2.在不登出A的情況下,訪問危險網(wǎng)站B。
如何預(yù)防:
通過referer、token 或者驗證碼來檢測用戶提交。
盡量不要在頁面的鏈接中暴露用戶隱私信息。
對于用戶修改刪除等操作最好都使用post 操作 。
避免全站通用的cookie,嚴格設(shè)置cookie的域。
參考資料:https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
更多建議: