對CSRF的簡單理解
CSRF(Cross-site request forgery,跨域請求偽造)
文章目錄
前言
CSRF是一種安全問題:攻擊者盜用你的身份(客戶端獲取的cookie)想第三方網站傳送請求,進行非法操作。
一、CSRF的過程
以訪問銀行網站為例:
- 使用者User訪問銀行網站,登入成功後,客戶端生成相應cookie。
- 在User未登出的情況下訪問了危險網站B,在網站B中觸發了一個請求,如點選圖片,該圖片src向銀行發起轉賬請求。由於User未登出,在網站B向銀行傳送請求時,會攜帶cookie。
- 銀行後臺響應請求,完成非法操作。
二、如何防禦CSRF攻擊
1.驗證 HTTP Referer
欄位
HTTP Referer
欄位它記錄了該 HTTP 請求的來源地址。伺服器端可以驗證請求的來源,若同源則響應。但是,HTTP Referer
欄位可以被修改,因此並不安全。
2.使用驗證碼
在客戶端使用驗證碼可以有效防止CSRF攻擊。
3.使用token驗證
這個Token的值必須是隨機的。由於Token的存在,攻擊者無法再構造一個帶有合法Token的請求實施CSRF攻擊。
相關文章
- 簡單的csrf漏洞
- 談一談對vuex的簡單理解Vue
- 對CAS演算法的簡單理解演算法
- 對TM鎖和TX鎖的簡單理解
- 我對微服務架構的簡單理解微服務架構
- 談一談對vue-router的簡單理解Vue
- ElasticSearch學習筆記(二)——對聚合的簡單理解Elasticsearch筆記
- RAC中對DB引數檔案的簡單理解
- 簡述對Vuex的理解Vue
- 對於ambari-collector 部分原始碼流程的簡單理解原始碼
- PHP socket 的簡單理解PHP
- MongoDB索引的簡單理解MongoDB索引
- ThreadLocal的簡單理解thread
- 快速排序的簡單理解排序
- Java的簡單理解(2)Java
- 簡單理解promisePromise
- Restful簡單理解REST
- EJB簡單理解
- BFC簡單理解
- vue cli 3的簡單理解Vue
- 關於BFC的簡單理解
- 簡單的理解 Object.defineProperty()Object
- 關於RabbitMQ的簡單理解MQ
- 氣泡排序的簡單理解排序
- 選擇排序的簡單理解排序
- 基數排序的簡單理解排序
- 歸併排序的簡單理解排序
- 簡單理解回撥
- 簡單理解OAuth 2.0OAuth
- Object.keys()的簡單理解Object
- 插值查詢的簡單理解
- 如何簡單的理解TDD與DDT
- 簡單理解Memcached的Slab Allocation
- 理解CSRF(跨站請求偽造)
- 簡單理解flex佈局Flex
- node.js簡單理解Node.js
- 簡單理解C++引用C++
- 簡單理解:ML、DB、NLP