CSRF — 跨站请求伪造

Posted liuzhaoxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSRF — 跨站请求伪造相关的知识,希望对你有一定的参考价值。

csrf:跨站请求伪造(Cross Site Request Forgy)

攻击原理:登陆受信任的网站A,并在本地生成cookie,在不登出网站A的情况下,访问了网站B,网站B在用户不知情的情况下向网站A发送请求,从而产生CSRF攻击。

 技术分享图片

 

 

实例:

假如网站A中是一个评论页,如下图:

技术分享图片

网站B的脚本文件:

技术分享图片

在不登出网站A时,点击网站B的链接时,会出现:自动评论,如下图

技术分享图片

这其实就是跨站请求伪造对网站带来的威胁。

网页B的脚本文件编写思路:

这段代码输出了一个表单,action是指向评论页面的评论接口的,value是评论页面的ID值是13,content是评论内容,创建了一个iframe,同时为iframe设置name和style为隐藏,将iframe放入页面中,form表单提交默认是跳转的,但是为什么没有跳转呢,这是因为,表单的target与iframe的name的值相同时,这个表单会在iframe中提交和跳转,因为iframe隐藏了,所以用户看不到跳转。这就是一个csrf的过程。

如果用get请求是不是会更加简单呢?

技术分享图片

 

比如在img的src中添加评论页面的接口地址,接口地址的参数上加上一个a标签,指向攻击网站B的地址,这样结果会是如下这个样子:

技术分享图片

这样会自动在评论中添加a标签,如果其他用户点击a标签,也会收到网站B的攻击,再次自动发送一个带有链接的评论,这样循环往复,就会对网站产生很大的威胁。

 

以上是关于CSRF — 跨站请求伪造的主要内容,如果未能解决你的问题,请参考以下文章

CSRF跨站请求伪造

Django--CSRF 跨站请求伪造

CSRF跨站请求伪造

跨站请求伪造CSRF原理

对CSRF(跨站请求伪造)的理解

21)django-csrf(跨站请求伪造)