CSRF介绍
什么是CSRF呢?我们直接看例子 。
【CSRF 十大常见web漏洞——跨站点请求伪造】https://mp.toutiao.com/profile_v3/graphic/preview?do=delete&pgc_id=6829574701128352260
这个URL是头条删除pgc_id为6829574701128352260的一篇文章的连接 , 通过执行这个URL用户就可以删除这篇文章 。
首先攻击者会构造一个页面:
https://mp.toutiao.com/CSRF.html
其内容为:
<img src=https://www.isolves.com/it/aq/fwq/2020-05-25/"https://mp.toutiao.com/profile_v3/graphic/preview?do=delete&pgc_id=6829574701128352260" />
使用了一个<img>标签 , 地址指向了删除头条文章的链接 。
攻击者会诱使头条主去访问这个页面:
文章插图
执行CSRF攻击
该用户看到了“头条君找不到你想要的页面”的错误提示 , 回头再看看头条内容管理:
文章插图
文章被删除了~~
发现原来存在的“十大常见web漏洞——跨站点请求伪造(CSRF)”文章已经被删除了!呵呵~~
这是因为头条主在访问“https://mp.toutiao.com/CSRF.html”时 , 执行了CSRF.html页面中的命令 , 删除了文章 。
CSRF的防御
验证机制
当头条主在访问“https://mp.toutiao.com/CSRF.html”时增加验证确认机制:
文章插图
删除确认
Referer Check
我们在之前的文章中讲过HTTP请求头部的一些可修改的值 , 就包括Referer值:
文章插图
HTTP请求头部
就是确认这个值与Host值是否一致 。
操作参数加密
攻击者为什么会构造这个链接:https://mp.toutiao.com/profile_v3/graphic/preview?do=delete&pgc_id=6829574701128352260 , 因为他知道参数“do=delete&pgc_id=6829574701128352260”是删除操作 , 如果将这个参数加密 , 攻击者就不知道具体操作是什么了 , 也就无法攻击了 。
没有网络安全 , 就没有国家安全!
推荐阅读
- SQL常见通配符使用指南
- 心脏病有什么症状表现,三种信号最常见
- 常见的Web Service种类和特点
- 常见的JVM参数配置
- 肩膀神经疼怎么办
- 什么叫溶血
- 茶叶种类及十大名茶,探究产于福建的十大名茶
- 常见减肥茶介绍,几款冬季减肥茶
- 杜仲茶十大功效与作用,杜仲茶具有减肥功效吗
- 发烧睾丸下垂