【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第九节:网关-CSRF攻击与预防

【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第九节:网关-CSRF攻击与预防

本篇文章我们来学习csrf攻击。

csrf攻击

csrf也叫做Cross-site request forgery,也就是跨站点请求伪造。

本来一个用户要访问的是a,然后呢,我这边伪造了一个b诱导用户去访问b,这个就叫做跨站点请求伪造。

在这里插入图片描述

攻击者通过跨站点的请求,以合法用户的身份,进行非法操作,比如转账或发表不当的评论。

举一个例子,大家就明白了。

在这里插入图片描述

比如说这边有一个银行的系统,然后有一个用户,这个用户做几件事,第一步先去登录,登录完之后,然后这个银行系统给它设置了一个cookie。然后有另外一个网站,这个网站比如说叫做黑客的网站,叫做黑网站,黑网站给用户发一些莫名其妙的短信,然后用户点击了短信中的链接,点击完之后就是黑客诱导用户去访问了这个网站,然后访问到这个网站之后,这个网站给他返回一个页面,然后这个页面里会执行一段操作,比如说转账,就是说返回的这个响应是让这个用户去执行转账的操作,然后这个用户收到这个响应之后呢,就去银行进行了转账的动作。

这就是一个跨站点请求伪造的例子。黑客伪造了用户的请求,其实这也是用户的一个正常的请求,用户拿着自己的信息做转账操作,但是他的这个操作是被别人伪造的,因为他点了一些不该点的链接,然后自动做了响应里面让他执行的一些操作。

csrf攻击的预防

好,那么我们知道了这种攻击手段之后应该怎么去预防呢?

这里面有几种预防的方法。

token校验

第一种是token校验。什么是token校验呢?

这个需要前端和后端一起来做,比如说刚才我们说的这个用户用的浏览器和这边的银行系统。

用户登录完之后有一个cookie被传到前端,然后前端将cookie的值进行加密后,发送到后台,然后后台收到cookie后,以相同的加密算法进行加密,若两者相等则请求成功。

在这里插入图片描述

这样的为什么就能预防另外一个网站去访问它呢?因为不在一个域名的请求cookie是无效的,cookie只是在同一个域名当中有效,所以说这样的话,跨域名的站点就无法拿到那个cookie的,所以这种情况下是无法伪造的。

验证码

另外一种就是验证码。

因为这个csrf攻击,是在用户不知情的情况下伪装成用户发送的请求,执行的一些敏感操作,肯定是给黑客带来利益的一些操作。因此在用户做这些敏感操作的时候,需要输入一个手机验证码,比如说我们的银行系统,在我们转账的时候,或者做一些消费行为的时候,总会让我们发一个验证码。如果说黑客通过csrf攻击我们的系统,他还需要一个验证码,那么验证码只有我们知道,黑客不知道,所以也就阻止了他的这种行为。

在这里插入图片描述

好了,这就csrf攻击,那么我们再趁着聊到这个,把后面的一些攻击也聊一下。

错误码攻击

还有就是根据错误码的攻击,错误码我们前面简单的聊过一些。也就是说如果我们请求一个系统,系统报错的话,比如说错误信息全抛在页面上,代码结构、数据库的表结构,全抛到页面上,这样的话,黑客就会利用这些信息进行攻击我们的系统。所以说错误码一定要包装。

文件上传

还有一个就是文件上传,文件上传的时候,如果被攻击者上传了可执行的程序,并且该程序获得了服务器的执行能力,那么攻击者就能攻击服务器。

就是说我把我要执行的程序都放到你的服务器上,并且执行了,那么就会攻击服务器。

这个预防的方法是什么呢?就是设置上传文件的白名单,也就是我只允许上传一些可靠的文件类型;还有一种办法就是文件上传后对文件进行重命名,比如说我们彼此之间发个APK文件,我们彼此收到之后需要把它名字改了之后才能进行安装运行;还有就是用专门的存储来存储文件,你给我上传一个文件,我把它存到一个特定的服务器上,就算你想执行一些破坏操作,服务器上啥也没有。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值