XSS、CSRF攻擊與防範

1、XSS攻擊瀏覽器

  XSS攻擊全稱跨站腳本攻擊,是指經過存在安全漏洞的Web網站註冊用戶的瀏覽器內運行非法的HTML標籤或者 JavaScript 進行一種攻擊。攻擊者編寫腳本設下陷阱,用戶在本身的瀏覽器上運行時,一不當心就會受到被動攻擊。安全

  例子:若是A用戶評論 [hello world] 提交到服務器,B用戶看到這條評論的時候一切正常。但若是C用戶評論 [<script>console.log(document.cookie)</script>],那麼當B用戶訪問這條評論所在的界面是,這串js代碼就會在B用戶的瀏覽器執行,輸出cookie的值。這樣就構成了XSS攻擊。服務器

  防範:cookie

                1)使用 XSS Filter併發

      針對用戶提交的數據,只接受規定的長度或內容的提交,過濾掉其餘的輸入類型。例如表單提交年齡只接受 int 類型,過濾掉特殊的HTML標籤<script>等,過濾 JS 事件例如 onclick, onfocus等。網站

     2)對HTML標籤插入的不可信數據進行 HTML Entity 編碼。編碼

       

 

 

       3)JavaScript 編碼 將 \ 轉成 \\,將/ 專程/\,將半角符號轉成全角符號  spa

       4)HTTP Only Cookie 許多XSS攻擊是爲了獲得用戶的cookie信息,將重要的cookie信息標記爲 http only,這樣的話當瀏覽器想服務器端發起請求時就會帶上cookie,可是在腳本中卻不能訪問cookie信息,避免了XSS攻擊利用js代碼document.cookie獲取cookie信息。blog

 

 

 

2、CSRF攻擊token

  CSRF全稱跨站請求僞造,能夠理解爲攻擊者盜用了用戶的身份,以用戶的名義發送了惡意請求。

  原理:

    • 用戶C打開訪問受信任網站A,輸入用戶名和密碼請求登錄網站A
    • 在用戶信息經過驗證後,網站A產生cookie信息並返回給瀏覽器,此時用戶登錄網站A成功,並能夠正常發送請求到網站A。
    • 用戶在未退出網站A以前,在同一瀏覽器中,打開了一個TAB頁訪問網站B
    • 網站B接收到用戶請求後,返回一些攻擊性代碼,併發出一個請求要求訪問第三方站點A
    • 瀏覽器咋接收到這些攻擊性代碼後,根據網站B的請求,在用戶不知情的狀況下攜帶Cookie信息向網站A發出請求,網站A並不知道該請求由B發起,因此會根據用戶C的權限處理該請求,致使來自網站B的而已代碼被執行。

 

  防範:

    • 驗證 HTTP Referer 字段
    • 請求地址中添加token並驗證
    • 使用驗證碼
相關文章
相關標籤/搜索