1、XSS----跨站腳本攻擊
原理:頁面渲染的資料中包括可運作的腳本
注入點:html節點的内容中;html中DOM元素的屬性中;JavaScript代碼;富文本
防範:①http響應頭中添加x-xss-protection,值為0為關閉,值為1為打開(預設)
②對特定字元做轉義:用<替換<,用>代替>,用"代替",用'代替'
③CPS----内容安全政策:用于指定哪些内容可執行
2、CSRF----跨站請求僞造
原理:在第三方網站向本網站發起請求
防範:①禁止第三方網站請求本網站的cookie,設定same-site屬性,strict表示所有的第三方都不能請求本網站的cookie,lax表示連結可以請求,但是form表單和ajax請求不行
②本網站前端添加驗證資訊:使用驗證碼和添加token驗證
③referer驗證:禁止來自第三方的請求
④使用post請求:使用post請求攻擊方必須要構造一個form表單才可以發送請求,稍微麻煩點。但是很多網站都是用get請求,可見前端并不能很有效的阻止攻擊,這個是後端主要負責。
3、點選劫持
原理:第三方網站通過iframe内嵌某個網站,并且将iframe設定為透明不可見,将其覆寫在其他經過僞裝的DOM上,僞裝的可點選DOM(按鈕等),與實際可點選的那個DOM位置相同,當使用者點選僞裝的DOM時,實際上點選的是iframe中内嵌的DOM進而觸發了請求操作,這個過程使用者并不知道。
防範:①JavaScript禁止内嵌:當網頁沒有内嵌時,top和window是相等的,當有内嵌時,top和window是不相等的,可以加以下判斷:
<script>
if (top.location != window.location) {
//如果不相等,說明使用了iframe,可進行相關的操作
}
</script>
<iframe sandbox='allow-forms' src='...'></iframe>