Django之CSRF跨站请求伪造(老掉牙的钓鱼网站模拟)
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:45
首先这是一个测试的代码
请先在setting页面进行下面操作

注释完成后,开始模拟钓鱼网站的跨站请求伪造操作:
前端代码:
效果如下(很low):

视图代码如下:
如果是一个正常的网站,运行结果应该如下:

提交:

后端的结果:

这样是没有任何问题的,但是如果网站没有进行防CSRF攻击(基本不可能,现在的主流网站都有防CSRF攻击),那么钓鱼网站就可以伪装,进行跨站请求伪造
接下来是钓鱼网站的视角:
首先:我看见了下面这个特别low的页面,发现没有防CSRF(等会说防御),直接copy源码

前端代码:

然后自己做一个和原网站一模一样的网站:

简单的模拟一下,网址已经变了
该网址的前端页面代码:
和原网址的代码对比,其他不变,但是转账对象的name值被取消了,并且还添加了一个input框,该input框的name值,是原转账对象的name值,value值也被写死,还把该标签隐藏,这样你在转账对象中无论输入什么,你都是白给,因为name='to_sb'的这个标签的值已经被固定了,而且该表单的action函数还是原网站,所以说钓鱼网站的后端不用写post请求来之后的操作。
钓鱼网站的后端代码:
也就是说,后端逻辑用的原网站的逻辑,只是简单的固定了转账人的值
运行一下:
前端钓鱼页面:

当前网址还是:
转账:
跳到了原网页
看看原网站的打印输出:

这样已经老掉牙的钓鱼网站的模型就完成了
1.打开注释

2.在页面中添加:

这样防御就做好了(所以说是老掉牙的钓鱼攻击)
测试一下:

点击转账:

这是因为在添加了{% csrf_token %}之后,该网站的前端代码已经改变了

该value是随机的,刷新一下,值就会改变,也就是说,钓鱼网站不能动态的获取,那么CSRF攻击也就没用了
- 上一篇: Django之用户认证auth模块
- 下一篇: Django之auth模块用户认证模块
相关文章
-
Django之用户认证auth模块
Django之用户认证auth模块
- 互联网
- 2026年04月04日
-
Django之用户认证—auth模块
Django之用户认证—auth模块
- 互联网
- 2026年04月04日
-
Django之自带的认证系统 auth模块
Django之自带的认证系统 auth模块
- 互联网
- 2026年04月04日
-
Django之auth模块用户认证模块
Django之auth模块用户认证模块
- 互联网
- 2026年04月04日
-
Django之auth模块(用户认证)
Django之auth模块(用户认证)
- 互联网
- 2026年04月04日
-
Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API
Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API
- 互联网
- 2026年04月04日






