跨站恳求假造CSRF防护办法

访客5年前黑客工具772

 CSRF(Cross-site request forgery跨站恳求假造,也被称成为“one click attack”或许session riding,一般缩写为CSRF或许XSRF,是一种对网站的歹意使用。

(一)CSRF进犯原理

CSRF进犯原理比较简单,如图所示。其间Web A为存在CSRF缝隙的网站,Web B为进犯者构建的歹意网站,User C为Web A网站的合法用户。

①用户C翻开浏览器,拜访受信赖网站A,输入用户名和暗码恳求登录网站A;

②在用户信息经过验证后,网站A发生Cookie信息并回来给浏览器,此刻用户登录网站A成功,能够正常发送恳求到网站A;

③用户未退出网站A之前,在同一浏览器中,翻开一个TAB页拜访网站B;

④网站B接收到用户恳求后,回来一些进犯性代码,并宣布一个恳求要求拜访第三方站点A;

⑤浏览器在接收到这些进犯性代码后,依据网站B的恳求,在用户不知情的情况下带着Cookie信息,向网站A宣布恳求。

⑥网站A并不知道该恳求其实是由B建议的,所以会依据用户C的Cookie信息以C的权限处理该恳求,导致来自网站B的歹意代码被执行。

(二)CSRF缝隙防护

①验证HTTP Referer字段

依据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP恳求的来历地址。在一般情况下,拜访一个安全受限页面的恳求有必要来自于同一个网站。比方某银行的转账是经过用户拜访http://bank.test/test?page=10&userID=101&money=10000页面完结,用户有必要先登录bank.test,然后经过点击页面上的按钮来触发转账事情。当用户提交恳求时,该转账恳求的Referer值就会是转账按钮地点页面的URL(本例中,一般是以bank. test域名最初的地址)。而假如进犯者要对银行网站施行CSRF进犯,他只能在自己的网站结构恳求,当用户经过进犯者的网站发送恳求到银行时,该恳求的Referer是指向进犯者的网站。因而,要防护CSRF进犯,银行网站只需求关于每一个转账恳求验证其Referer值,假如是以bank. test最初的域名,则阐明该恳求是来自银行网站自己的恳求,是合法的。假如Referer是其他网站的话,就有可能是CSRF进犯,则回绝该恳求!

根据上面的办法咱们在java中能够选用Filter的 *** 阻拦并做好验证的处理,如下:咱们能够编写一个 Filter,并在 web.xml 中对其进行装备,使其关于拜访一切需求 CSRF 维护的资源的恳求进行阻拦!

1
2
3
4
5
6
7
8
 // 从 HTTP 头中获得 Referer 值
 String referer=request.getHeader("Referer");
 // 判别 Referer 是否以 bank.example 最初
 if((referer!=null) &&(referer.trim().startsWith(“bank.example”))){
    chain.doFilter(request, response);
 }else{
request.getRequestDispatcher(“error.jsp”).forward(request,response);
 }

[1] [2] [3]  黑客接单网

相关文章

内存取证:查找Metasploit的Meterpreter踪影

Metasploit是一个十分受欢迎的浸透测验结构,被视为安全测验人员手中的一把利器。但在另一方面由于他过于强壮,因而也常常被一些歹意攻击者所运用。当然,在本文咱们首要评论的是关于内存取证,这对于咱们...

Sundown进犯套件的晋级

Exploit Kit职业现在正在发作新的调整,原先许多具有进犯性的缝隙进犯套件或许消失,或许市场份额削减,比方Nuclear EK和AnglerEK这样的职业大鳄几乎在同一时刻消失了,咱们估测这可能...

PHP序列化与反序列化解读

花费了点时刻研讨了下PHP序列化,写在这儿。一是便利自己知识点回忆,二是协助相同有疑问的人,欢迎纠正过错,不喜勿喷. 0×01.确认装备文件 首要体系运用的ubuntu apt-get install...

一个MongoDB注入进犯事例剖析

在开端咱们的MongoDB“注入之旅”之前,咱们需求先知道和其他数据库比较,为什么咱们更乐意选MongoDB——由于MongoDB并不是SQL作为查询句子,所以人们可能会认为这样的数据库难以进行注入进...

RIG exploit kit:歹意活动剖析陈述

尽管攻击方式不算复杂,但是RIG仍然能通过一些恶意软件活动获得较大的流量。而那些利用被黑站点和恶意广告,重定向到RIG的流量,是通过服务端的302跳转机制,或者是通过客户端的iframe和JS脚本...