CORS和CSRF


CORS和CSRF

 

什么是CORS?
CORS是一個W3C標准,全稱是"跨域資源共享",他允許瀏覽器向誇源服務器,發出XMLHTTPRequest請求,從而克服了AJAX只能同源使用的限制.

 

什么是CSRF?
名為跨站請求偽造,指攻擊者盜用了你的身份,以你的名義發送惡意請求,CSRF主流防御方式是在后端生成表單的時候生成遺傳隨機token,內置到表單里成為一個字段,同時,將此串token置入session中.每次表單提交到后端時都會檢查這兩個值是否一致,以此來判斷此次表單提交是否是可信的.提交過一次之后,如果這個頁面沒有生成CSRF token,那么token將會被清空,如果有新的需求,那么token會被更新.
攻擊者可以偽造POST表單提交,但是他沒有后端生成的內置於表單的token,session中沒有token都無濟於事.

 

 

 

如何去解決CSRF跨域請求偽造問題?

防止CSRF攻擊的步驟

  1. 在客戶端向后端服務器請求頁面數據時, 后端會在響應的token中設置csrf_token的值
  2. 在前端的From表單中也添加了一個隱藏的字段, 這個字段的值也是csrf_token
  3. 在用戶點擊提交的時候, 會帶上表單中的csrf_token和cookie中的csrf_token一起發送到后端服務器
  4. 后端服務器接收前端發送過來的請求
    1. 從cookie中取出csrf_token
    2. 從From表單中取出隱藏的csrf_token值
    3. 對這兩個token值進行對比
  5. 如果比對之后這連個值一樣, 則表示這個是正常的請求, 如果對比之后發現這兩個值不一樣, 則說明這個是不正常的請求, 服務器端不需要做處理

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM