天天看點

前端安全以及防範

1、XSS----跨站腳本攻擊

  原理:頁面渲染的資料中包括可運作的腳本

  注入點:html節點的内容中;html中DOM元素的屬性中;JavaScript代碼;富文本

  防範:①http響應頭中添加x-xss-protection,值為0為關閉,值為1為打開(預設)

     ②對特定字元做轉義:用&lt;替換<,用&gt;代替>,用&quot;代替",用&#39;代替'

     ③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>