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,来解决正当的问题,来维护网络安全。
以上就是小编今天的分享了,希望可以帮助到大家。