一种利用授权访问机制来进行CSRF防护方法与流程

文档序号:16515051发布日期:2019-01-05 09:34阅读:639来源:国知局
一种利用授权访问机制来进行CSRF防护方法与流程

本发明涉及网络通信技术领域,具体尤其涉及一种利用授权访问机制来进行csrf防护方法。



背景技术:

随着科技的发展,现有各种网络应用盛行,在web应用层面上的安全攻击逐渐占据主流。跨站点请求伪造(csrf)因其攻击隐蔽性强,攻击危害性大,从2007至2017近十年都排在web安全攻击前十名,对上网用户生活与财产安全构成极大威胁,然而,目前无论是手工还是自动化检测都缺少对csrf漏洞的准确识别,csrf的防御方法也较多,但大多适用特定场合,很难得到全面防护,让这种攻击防不胜防。

授权和访问控制(authorizationandaccesscontrol)用来防止合法用户对系统资源的非法访问。授权侧重于强调用户拥有什么样的访问权限,访问控制是对用户访问行为进行控制,它将用户的访问行为控制在授权允许的范围之内。授权是签发通行证,访问控制是卫兵。前者规定用户是否有权出入某个区域,后者检查用户在出入时是否超越了禁区。

csrf(cross-siterequestforgery)跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为csrf或者xsrf,是一种对网站的恶意利用。csrf攻击也称为confusedeputy,代理人混淆。csrf攻击的出现,是因为攻击者发现简单的绕过身份认证直接攻击系统已经不可能,为了达到攻击目的,攻击者想到利用有已经获得授权访问的人自己去进行攻击,同时又做到让这个合法用户毫不知情。

csrf攻击能成功,最主要是网站的隐式认证技术,也就是说一旦合法用户获得了授权访问,后面这个用户再做其他操作,不需要再经过二次认证(全是后台完成验证),所以攻击者就容易伪造网站或url或email让合法用户去访问去点击,导致正常数据被篡改。

目前对csrf防护的措施,最有效的就是动态的csrftoken校验,如果攻击者伪造的url上没有csrftoken或者csrftoken不对,就阻止这个请求执行。但是一个网站功能繁多,如何精确定位哪个url需要做csrf防护是至关重要的。

以目前javaee开发的系统来说,如果一个功能url需要完成授权才能访问,一般都会配置在类似auth.xml中,这样新开发的页面如果需要进行授权访问,只要配置在auth.xml中即可,完成授权后,才能执行相应的功能。比如参见说明书附图中附图3,auth.xml定义只有blog的owner才能对blog进行修改与删除,并且有三类人能做这个操作,blog的创建人(owner),版主(moderator),系统管理员(admin)。



技术实现要素:

为此,本发明提出一种利用授权访问机制来进行csrf防护方法,本发明就是利用这个网站用户完成授权访问的机制来进行csrf防护的,因为csrf攻击的产生就是合法用户的身份被利用进行用户本人不知情的非法操作,所以只要某功能需要授权才能访问,说明这个功能就有可能被攻击者恶意利用来做csrf攻击,同时为了让csrf防护也做到可配置,我们引入csrftoken-verify-list.xml,一旦某url请求被放置在csrftoken-verify-list.xml中,那么这个url请求发出时一定要带上系统生成的新的用于检验的参数csrftoken,由于攻击者无法事先预知csrftoken的值是多少,所以无法构造出正确的url供合法用户访问或点击,这样就能避免恶意用户利用合法用户的身份做非法的事。

本发明通过如下手段实现:

一种利用授权访问机制来进行csrf防护方法,包括有以下步骤:

接收http请求;

对http请求进行信息收集;

认证判断url请求是否需要授权才能访问,是否统一配置在类似于auth.xml中,如果执行,则将这个url放到csrftoken-verify-list.xml中,如果不执行,则确定http请求正常,并对http请求进行下一步处理;

如果某url需要授权才能访问,那么就需要将这个url放到csrftoken-verify-list.xml中,对于需要做csrftoken校验的url,这些url存在csrf攻击的风险,需要验证请求有没有带csrftoken,带的csrftoken是否正确,如果执行,则确定http请求正常,并对http请求进行下一步处理,如果不执行,则返回出错页;

需要验证csrftoken的url请求,验证csrftoken正确,对http请求进行下一步处理,确定http请求正常,并对http请求进行下一步处理。

本发明有益效果:本发明能够快速有效防护csrf攻击,本发明就是利用这个网站用户完成授权访问的机制来进行csrf防护的,因为csrf攻击的产生就是合法用户的身份被利用进行用户本人不知情的非法操作,所以只要某功能需要授权才能访问,说明这个功能就有可能被攻击者恶意利用来做csrf攻击,同时为了让csrf防护也做到可配置,我们引入csrftoken-verify-list.xml,一旦某url请求被放置在csrftoken-verify-list.xml中,那么这个url请求发出时一定要带上系统生成的新的用于检验的参数csrftoken,由于攻击者无法事先预知csrftoken的值是多少,所以无法构造出正确的url供合法用户访问或点击,这样就能避免恶意用户利用合法用户的身份做非法的事。

附图说明:

图1为本发明系统框架图。

图2为本发明防止利用授权访问漏洞进行csrf攻击系统拦截示意图。

图3为本发明背景技术中事例代码示意图。

具体实施方式:

为了使本领域的技术人员更好地理解本发明的技术方案,下面结合实施例对本发明作进一步说明:

如图1所示,一种利用授权访问机制来进行csrf防护方法,包括有以下步骤:

步骤201,接收http请求;

步骤2002,对http请求进行信息收集;

步骤203,认证判断url请求是否需要授权才能访问,是否统一配置在类似于auth.xml中,如果执行,则进行步骤204,如果不执行,则进行步骤205;

步骤204,如果某url需要授权才能访问,那么就需要将这个url放到csrftoken-verify-list.xml中;

步骤205,对于需要做csrftoken校验的url,这些url存在csrf攻击的风险,需要验证请求有没有带csrftoken,带的csrftoken是否正确,如果执行,则进行步骤207,如果不执行,则进行步骤206;

步骤206,请求不执行,并返回出错页;

步骤207,确定http请求正常,并对http请求进行下一步处理。

如图2所示,本发明防止利用授权访问漏洞进行csrf攻击系统拦截示意图,包括有以下步骤:

步骤301用户访问一个网站,获得授权并且可以访问某功能;

步骤302,授权成功后完成session或ticket交换;

步骤303,用户再访问这个网站中的其他网页或链接已经获得授权或同类授权与访问控制的页面都可以继续访问;

步骤304,攻击者设置陷阱,伪造一个链接或邮件或二维码等,诱导用户访问,一旦用户点击或访问;

步骤305,系统就会附带用户在该网站中已经授权访问的session或ticket,发到服务器端请求执行;

步骤306,本发明对于需要进行csrf防护的url都会从请求中获取csrftoken;

步骤307,获取完成,对csrftoken的正确性进行校验;

步骤308,因为csrftoken每个人都不同,不同时刻访问也不同,攻击者无法预知csrftoken值,所以攻击者无法伪造出一个可以执行的url,这样就会校验失败,中止操作,从而完成csrf攻击的防护。

以上只通过说明的方式描述了本发明的某些示范性实施例,毋庸置疑,对于本领域的普通技术人员,在不偏离本发明范围的情况下,可以用各种不同的方式对所描述的实施例进行修正。因此,上述附图和描述在本质上是说明性的,不应理解为对本发明权利要求保护范围的限制。

除非另有定义,本文所使用的所有学术和科学术语具有本发明所属技术领域普通技术人员所理解的相同含义。

在相抵触的情况下,以本说明书中的定义为准。

除非另有说明,所有的百分数、份数、比例等都是以重量计。

当给出数值或数值范围、优选范围或一系列下限优选值和上限优选值时,应当理解其具体公开了由任何较小的范围限值或优选值和任何较大的范围限值或优选值的任何一对数值所形成的任何范围,而无论范围是否分别被公开。除非另有说明,在本说明书描述数值范围之处,所述的范围意图包括范围端值和范围内的所有整数和分数。

当术语“约”或“左右”用于描述数值或范围的端值时,所公开的内容应当是包括该具体数值或所涉及的端值。

采用“一”和“一个/种”的用法描述本发明的要素和组分,这只是出于便利和为了给出本发明一般情况。除非另有明显表述,应将该说明理解为包括一个/种或至少一个/种。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1