java csrf是什么,讓我們一起了解一下:
csrf是一種挾制用戶在當前已登錄的Web應用程序上執行非本意的操作的攻擊方法。攻擊者誘導受害者進入第三方網站,在第三方網站中,向被攻擊網站發送跨站請求。
實戰操作:假設bbs系統以HTTP GET請求方式來刪除帖子,攻擊者在惡意網站加入以下HTML代碼段。
CSRF攻擊者在MW中嵌入上述標簽,一旦用戶訪問該網站將導致帖子被刪除,顯然用戶沒想過要刪除帖子。那有人會問了,既然HTTP GET方式會導致帖子會被刪除,那么我改用POST方式不就可以了。
為解決上面的問題,bbs程序員將刪除帖子的方式改用POST表單提交方式。
實際上前端頁面改用POST方式還是會存在兩個問題,一是java后端程序員如果編寫Servlet或者SpringMVC控制器中時沒有很好地區分出POST與GET請求時,那么以request.getAttribute()或者request.getParameter()方式獲取客戶單請求參數,那么還是無法判斷出請求是來自POST還是GET的。
假設不存在第一個問題,那是不是真的就不存在問題了呢。其實你在頁面改用POST請求,那么攻擊者在惡意頁面中也可以改用POST方式,正所謂以其人之道還治其人之身。如下代碼示例:
???? ????????
顯然,一旦訪問該頁面還是會遭受攻擊,因此改用POST方式來防御CSRF是治標不治本。
最后,我們要正確使用java csrf,來解決正當的問題,來維護網絡安全。
以上就是小編今天的分享了,希望可以幫助到大家。