csrf攻击

时间 : 17-11-05 评论 : 0 点击 : 165 次

CSRF(Cross-site request forgery)跨站请求伪造。

攻击场景:用户访问A站点,在A站点进行了登录,A站点种下cookie跟踪用户登录态。B站点是一个恶意站点,用户访问B站点,B站点页面包含恶意攻击代码,发起了一个对A站点CGI的请求,这个CGI将会操作用户在A站点的数据,由于用户前面在A站点登录过,这时候用户的cookie被正常传递到A站点的服务器,A站点服务器识别出用户的身份,对用户数据进行修改。但这个过程是在用户不知道的情况下操作的,造成用户的数据被异常篡改。

防范措施:

1、在cgi请求中加上动态token,服务器端校验token的准确性。

token的计算方式:从cookie中取得登录态相关重要字段,进行hash后得到。

由于B站点无法取得cookie,因此无法基于cookie计算动态token,会导致该请求被拒绝。

2、在服务器端检查referer

只允许白名单referer的请求,B站点发过来的请求会被拒绝

3、加验证码

以上一二点可以同时实施,第三点由于影响用户体验,视cgi的重要性有选择的加。正常情况下,一二点已经可以防范csrf攻击了,但是有可能站点存在其它漏洞被恶意利用(比如xss漏洞导致黑客可以获取到cookie),加上验证码多了一次人工操作,可以加大攻击难度。

没有绝对的安全,只有不断提高攻击成本,使得攻击投入产出比划不来,让黑客放弃攻击。同时安全符合木桶理论,短板绝对安全程度,因此每个环节都需要注意安全。

安全

csrf攻击:等您坐沙发呢!

发表评论