CSRF的防範

 CSRF(Cross Site Request Forgery)是常見的web攻擊,攻擊者誘使用戶訪問一個頁面,就以該用戶身份在第三方站點裏執行操作,進行攻擊。

CSRF的攻擊過程,往往是在用戶不知情的情況下構造了網絡請求。

1、添加驗證碼

  •  驗證碼強制用戶必須與應用進行交互,才能完成最終請求。
  •  驗證碼是一種輔助手段,不能作爲最主要的解決方案。

2、referer檢查

檢查請求header中的referer也能幫助防止CSRF攻擊,但服務器不是總能拿到referer,瀏覽器可能出於安全或隱私而不發送referer,所以也不常用。圖片防盜鏈中用得很多。

3、Anti CSRF Token

更多的是生成一個隨機的token,在用戶提交數據的同時提交這個token,服務器端比對後如果不正確,則拒絕執行操作

4、Use the Same-Site Flag in Cookies

The Same-Site Flag in Cookies是一種相對較新的方法,用於防止CSRF攻擊。假設https://attacker.com/可以發送POST請求與會話cookie一起到https://example.com/。此會話cookie對於每個用戶是唯一的,並且Web應用程序使用它來區分不同的用戶其他, 並確定您是否已登錄。 

如果會話cookie被標記爲 同一站點cookie,它只與源自同一域的請求一起發送。因此,假設https://example.com/index.php想要發送POST請求到https://example.com/post_comment.php。使用相同的網站Cookie,這是允許的。 

但是,如果https://attacker.com/想要發佈https://example.com/post_comment.php的發佈請求,則會話cookie將不會與請求一起發送,因爲它是不同的域。這意味着如果攻擊者的網站發送請求,它會發送沒有會話cookie。因此,Web應用程序假定您沒有登錄並拒絕請求,成功阻止了跨站點請求僞造嘗試。 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章