當前位置:生活全書館 >

IT科技

> csrf java

csrf java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java csrf是什麼,讓我們一起了解一下:

csrf是一種挾制使用者在當前已登入的Web應用程式上執行非本意的操作的攻擊方法。攻擊者誘導受害者進入第三方網站,在第三方網站中,向被攻擊網站傳送跨站請求。

實戰操作:假設bbs系統以HTTP GET請求方式來刪除帖子,攻擊者在惡意網站加入以下HTML程式碼段。

<img src="http://www.mybbs.com/del_forum_posts.do?id=1234"/>

CSRF攻擊者在MW中嵌入上述<img>標籤,一旦使用者訪問該網站將導致帖子被刪除,顯然使用者沒想過要刪除帖子。那有人會問了,既然HTTP GET方式會導致帖子會被刪除,那麼我改用POST方式不就可以了。

為解決上面的問題,bbs程式設計師將刪除帖子的方式改用POST表單提交方式。

<form action="del_forum_posts.do" mehtod="post">    <input name="id" value="1234"/>    <input type="submit" value="submit"/></form>

實際上前端頁面改用POST方式還是會存在兩個問題,一是java後端程式設計師如果編寫Servlet或者SpringMVC控制器中時沒有很好地區分出POST與GET請求時,那麼以request.getAttribute()或者request.getParameter()方式獲取客戶單請求引數,那麼還是無法判斷出請求是來自POST還是GET的。

java csrf

假設不存在第一個問題,那是不是真的就不存在問題了呢。其實你在頁面改用POST請求,那麼攻擊者在惡意頁面中也可以改用POST方式,正所謂以其人之道還治其人之身。如下程式碼示例:

<script language="JavaScript" type="text/javascript">    function autoSubmit() {        document.forms['myForm'].submit();    }</script>    <body οnlοad="autoSubmit()">        <form id="myForm" name="myForm" action="del_forum_posts.do" mehtod="post">         <input name="id" value="1234"/> </form></body>

顯然,一旦訪問該頁面還是會遭受攻擊,因此改用POST方式來防禦CSRF是治標不治本。

最後,我們要正確使用java csrf,來解決正當的問題,來維護網路安全。

標籤: java csrf
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/w65gnk.html