CSRF(Cross Site Request Forgery,跨站請求偽造)攻擊,是一種利用用戶已登錄的身份去發起跨站請求的攻擊方式。攻擊者通過某種方式獲取到網站的某個頁面或接口,把惡意的操作腳本插入其中,當用戶訪問該頁面時,惡意腳本會自動執行,將用戶的瀏覽器發送的請求偽裝成針對目標網站的請求進行發送。
攻擊步驟如下:
攻擊者構造請求,設置好目標網站的地址和參數。
攻擊者將請求通過電子郵件、QQ、微信等方式欺騙用戶訪問頁面或點擊鏈接,或通過XSS等方式注入惡意代碼。
用戶的瀏覽器接收到請求并自動執行惡意腳本,發送請求到目標網站并攜帶了攻擊者構造的請求參數。
目標網站接收到請求后,由于是用戶已經登錄的身份發起的請求,服務器會對請求進行驗證并執行操作。
攻擊原理圖如下:
CSRF攻擊產生的根本原因,是由于Web應用程序的設計和實現上存在缺陷,即缺乏有效的身份驗證和請求判斷驗證措施。這種缺陷給攻擊者可乘之機,透過用戶身份欺騙服務器授權,執行攻擊者選取的危害操作,從而對用戶個人信息、賬戶財產等造成損失。