CSRF是什么

发布时间:2022-01-05 11:48:58 作者:iii
来源:亿速云 阅读:184

这篇文章主要讲解了“CSRF是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSRF是什么”吧!

一、CSRF是什么?

刚刚已经说了,全称叫做夸张请求伪造,很明显就是和安全有关的一个知识点,意思是攻击者通过伪造用户的浏览器的请求,向访问一个用户自己曾经认证访问过的网站发送出去,使目标网站接收并误以为是用户的真实操作而去执行命令。

举个例子来解释,你去某网买东西,输入了用户名密码,攻击者在另外一个页面重新使用了你的用户名密码。比如发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账。

所以说危害那是相当严重,我们使用一张图来表示一下这个过程吧。

CSRF是什么

至于能不能经得起诱惑,就看个人了。有时候我们点击了某一个链接但是没有执行任何操作,银行卡的钱却不见了,你知道这是为什么吗?我们可以模拟一下这个过程。

二、你的钱为什么会不见了

其实这个步骤和刚刚那个图是一样的。现在有张三和李四进行转账。

1、张三给李四100块,执行的操作是:

xxx/transfer.php?from=张三&money=100&to=李四

注意此时的张三没有把页面关闭掉。这里的前缀我没有写,因为文章审核通过不了。

2、黑客想把钱转给自己,执行的操作是:

xxx/transfer.php?from=张三&money=100&to=黑客

很明显会失败,这是因为张三在登录系统的时候会通过cookie,把自己的session传递给后台服务器。此时系统检查当前的session中的身份,发现不正确就拒绝了。

3、黑客继续想办法,使用不良网站诱导:

网站的连接很有颜色感,让张三欲罢不能,于是点击了诱导链接A。此时返回给黑客的信息就是:

 1<html>
2    <body>
3        <form method="get" action="xxx/java">  
4            <input type="hidden" name="from" value="张三">   
5            <input type="hidden" name="money" value="100">  
6            <input type="hidden" name="to" value="黑客">   
7            <input type="button" οnclick="submit()" value="来呀,快活呀">
8        </form>
9    </body>
10</html>
 

如果此时张三刚刚给李四转完钱,并且页面还没关闭,就点击了这个链接,那么就会执行上面的操作。这是因为此时的黑客身份就是张三的信息,银行不知道因为是张三,于是接受了请求。

三、如何防范

1、验证码

这个道理很简单,也是目前使用最广泛的一种方式。验证码则强制用户必须与应用进行交互,才能完成最终请求。但该方式用户体验较差;

2、Referer Check防盗链

可以检测请求是否来自合法的源,如果请求不是来自合法源,则很可能发生了CSRF攻击,但服务器并不能在任何时候都能获取到Referer;

3、Token

使用动态的Token。使用真随机数或者经过密钥加密的字符串作为token值,使用方式可参考重放攻击防御中的token,该防御方式需要注意token的完全随机和有效期,一个经常无规则变动的token值往往是无法破解的。

感谢各位的阅读,以上就是“CSRF是什么”的内容了,经过本文的学习后,相信大家对CSRF是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. flash csrf
  2. csrf 详解

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

csrf

上一篇:java String如何被设计成不可变对象

下一篇:java静态方法为什么不能调用非静态方法和变量

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》