java csrf

作者:原创时间:2022-03-29
文档

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方式,正所谓以其人之道还治其人之身。如下代码示例:


    function autoSubmit() {
        document.forms['myForm'].submit();
    }

    
         
         

显然,一旦访问该页面还是会遭受攻击,因此改用POST方式来防御CSRF是治标不治本。

最后,我们要正确使用java csrf,来解决正当的问题,来维护网络安全。

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java获取请求域名 java获取路径 java cssbox java获取运行时间 java ctp java获取随机字符串 java daemon java获取随机数 java dashboard java获得当前路径 java表单校验 java dataframe java规则引擎 java dataset java读取json java读取本地excel java decaf java调python java decode java decodeuri java获取视频时长 java crontab java获取网络时间 java crash java获取秒级时间戳 java core java获取泛型class java corba java cookie java获取本地ip java controller java获取本周日期 java context japanese java 微信怎么群发消息 java获取时间差 java获取文件名后缀 微博账号怎么注销 excel如何换行 java获取当月最后一天日期