XSS攻擊和CSRF攻擊有什麼區別?

老男孩IT教育機構發表於2024-01-29

  XSS攻擊和CSRF攻擊是網路安全領域比較常見的攻擊方式,而且這兩種攻擊方式從名字上來看,同為跨站攻擊:XSS攻擊為跨站指令碼攻擊、CSRF攻擊為跨站請求偽造,那麼XSS攻擊和CSRF攻擊有什麼區別?以下是詳細的內容介紹。

  CSRF攻擊基本概念及防範方法

  一、基本概念

  CSRF,英文全稱Cross-site request forgery,跨站請求偽造。也被稱為“One Click Attack”或者“Session Riding”,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用。

  二、防範方法

  方法1:Token驗證,用的比較多:①伺服器傳送給客戶端一個token;②客戶端提交的表單中帶著這個token;③如果這個token不合法,那麼伺服器拒絕這個請求。

  方法2:隱藏令牌:將token隱藏在http的head頭中,方法二和方法一有點像,本質上沒有太大區別,只是使用方式上有區別。

  方法3:Referer驗證:Referer指的是網頁請求來源,意思是,只接受本站的請求,伺服器才做響應;如果不是,就攔截。

  XSS攻擊的基本概念及防範方法

  一、基本概念

  XSS,全稱Cross Site Scripting,跨站指令碼攻擊。XSS攻擊的核心原理是:不需要你做任何的登入認證,它會透過合法的操作,向你的頁面注入指令碼。

  最後導致的結果可能是:盜用cookie破壞頁面的正常結構,插入廣告等惡意內容D-doss攻擊。

  二、防範方法

  方法1:編碼:對使用者的輸入進行HTML Entity編碼。

  方法2:過濾:移除使用者輸入的和事件相關的屬性。如onerror可以自動觸發攻擊,還有onclick等。(總而言之,過濾掉一些不安全的內容)移除使用者輸入的style節點、script節點、Iframe節點。

  方法3:校正:避免直接對HTML Entity進行解碼。使用DOM parse轉換,校正不配對的DOM標籤。

  DOM parse,這個概念,它的作用是把文字解析成DOM結構。

  比較常用的做法是,透過第一步的編碼轉成文字,然後第三步轉成DOM物件,然後經過第二步的過濾。

  還有一種簡潔的答案:首先是encode,如果是富文字,就白名單。

  XSS攻擊和CSRF攻擊有什麼區別?

  區別一:CSRF需要使用者先登入網站A,獲取cookie,XSS不需要登入。

  區別二:CSRF是利用網站A本身的漏洞,去請求網站A的api,XSS是向網站A注入js程式碼,然後執行js裡的程式碼,篡改網站A的內容。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69952527/viewspace-3005544/,如需轉載,請註明出處,否則將追究法律責任。

相關文章