防範手段javascript
除了重放攻擊,有可能客戶端的快速點擊也會重複發送請求,在服務端能夠用上面的方法處理,客戶端可使用節流和防抖限制html
攻擊形式一:前端
攻擊形式二:vue
xss攻擊分類:java
防範:react
.innerHTML
、.outerHTML
、document.write()
以及vue和react的v-html
/dangerouslySetInnerHTML
CSP(content security policy)數據庫
攻擊類型:後端
<form action="http://bank.example/withdraw" method=POST> <input type="hidden" name="account" value="xiaoming" /> <input type="hidden" name="amount" value="10000" /> <input type="hidden" name="for" value="hacker" /> </form> <script> document.forms[0].submit(); </script>
防範策略:api
同源檢測:利用請求頭的Origin和Referer,能夠在meta或csp中設置referer policy,控制請求是否帶referer跨域
CSRF Token:構造一個攻擊者沒法獲取的token,在請求時帶着這個token訪問服務器,不能放在cookie中,而是做爲報文body的一部分
雙重cookie驗證:利用沒法跨域獲取cookie的限制,在訪問頁面時往cookie添加一個csrfcookie的隨機數,後續發起請求時,頁面獲取該cookie,並設置到請求參數裏,後續驗證,服務器只須要驗證cookie中的值和請求裏的參數是否一致便可
samesite cookie:新的提案
Set-Cookie: xxx; Samesite=Strict
,則該cookie除了從自身網站下發起請求,其他包括新頁面打開,或不一樣域名下的異步請求,都不會帶上cookieSet-Cookie: xxx; Samesite=Lax
,當這個請求是從自身網站下發起的請求,或者打開了新頁面,如從百度打開某個頁面,同時他是個get請求,那麼容許帶上cookie