什么是CSRF

利用用户已经登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作

CSRF攻击原理

  1. 用户登录web网站,此时浏览器含有用户登录信息
  2. 黑客构造恶意网站
  3. 用户主动访问恶意网页,转账到黑客用户。

    真正完成转账的关键在于: 浏览器cookie存放有用户的登录凭证,当浏览器发送请求时,会继续带上已有的cookie, 而受害网站本身也存在csrf漏洞,如无token校验,无法区别请求是用户还是攻击者

    恶意网页的构造技巧: 含有攻击的网页不会显示任何内容,只会在加载的时候提交新的请求,实现转账操作

csrf的防御

Referer头检测法

Referer标识当前请求的来源页面,浏览器访问时除了自动带上Cookie还会自动带上Referer,所以服务端可以检测Referer头是否本网站页面来决定是否响应请求。

Referer是浏览器自动带上的,基于认为浏览器没有相关漏洞的前提下,我们可以认为攻击者是没法伪造Referer头的,也就是检测Referer头的方法是可靠的。

但该方式有时会不受认可,一是因为浏览器是可以设置禁止发送Referer头的,如果使用该方式那么禁止Referer头的浏览将无法正常使用,这可能会降低用户使用体验。二是因为由于移动端的崛起当下流行前后端分离app和web共用一套后端代码,但app是不会自动带Referer头的,如果使用该方式app端不好处理。

token检测法

当前主流的框架为了预防这种攻击,都是采用TOKEN机制。也就是说当用户与服务端进行交互的时候,传递一个加密字符串到服务端,服务端来检测这个字符串是否是合法的,如果不合法就有可能是黑客伪造用户信息进行请求的。

那么这个加密字符串是怎么生成的那?加密字符串是由后端程序生成,然后赋值到页面之上。一般是由当前控制器,方法,密钥,时间组合在一起加密而成。传递到服务端以后,服务端重新生成一遍,如果一致就是合法的,否则就是不合法的。
如上面的转账提交操作,如果采用Token校验,需要用户先去访问转账页面,正常服务器返回转账页面并返回一个与页面对应Token, 用户在填写完转账信息提交时候需要带上Token信息,这样服务器就知道这个转账申请是不是是由自己发送的。因为CSRF中攻击者是直接提交转账申请,并没有前面访问转账页面获取Token的过程。

扩展:那为什么现在的转账申请还需要验证码或短信校验的操作?
原因是,既然攻击者可以伪造转账申请提交页面,完全有可能通过伪造一序列的页面完成访问转账页面生成Token,并提交转账申请的操作。这个时候,如果服务器端通过短信校验的方式呢,用户一收到短信,就知道自己账号存在泄密风险了。就可能将这些伪造页面给戳破了。

网易web安全:课后问题-CSRF相关推荐

  1. 网易WEB白帽子-WEB安全基础

    网易WEB白帽子 02..WEB安全基础 1.钓鱼 诱惑性的标题,仿冒真实网址,骗取用户账户,骗取用户资料 2.网页'篡改' hacked by Intitle : keyword 标题中还有关键字的 ...

  2. 网易WEB白帽子 -WEB安全工具

    网易WEB白帽子 03 WEB安全工具 1. 浏览器 内容设置 允许弹窗 可运行Javascript脚本 内容设置 www.hackthissite.org 插件 HackBar Advanced C ...

  3. 网易WEB白帽子-WEB安全体系建设

    网易WEB白帽子 05 WEB安全体系建设 SDL 安全开发生产周期 提升WEB应用的安全性 减少WEB应用的的安全漏洞 降低安全漏洞的修复成本 SRC 安全应急响应中心 WAF WEB安全应用防火墙

  4. 网易web安全工程师进阶网易web安全微专业从基础到进阶

    这套课程是由网易和i春秋联合出品的一套网易web安全工程师进阶教程,课程的质量毋庸置疑,教程是我花了3000元从官网上买的,自己也是学习了这套教程,现在我分享给大家,课程包括网易web安全工程师基础课 ...

  5. Web攻防之XSS,CSRF,SQL注入

    摘要:对Web服务器的攻击也可以说是形形色色.种类繁多,常见的有挂马.SQL注入.缓冲区溢出.嗅探.利用IIS等针对Webserver漏洞进行攻击.本文结合WEB TOP10漏洞中常见的SQL注入,跨 ...

  6. 网易web白帽子学习笔记

    部分转载他人 一.web基础知识 1.1.1web介绍 world wide web 万维网 web1.0 个人网站.门户站点  静态页面 web2.0 微博.博客交互式页面 随之而来有一些安全问题: ...

  7. 几种常见Web安全攻击方式 CSRF 、XSS 、SQL注入

    ps: 如果有任何问题可以评论留言,我看到后会及时解答,评论或关注,您的鼓励是我分享的最大动力 转载请注明出处:https://blog.csdn.net/qq_40938301/article/de ...

  8. web基础漏洞之CSRF(跨站请求伪造漏洞)

    cookie session token 我觉得在开始学习CSRF之前应该先学会区分这三种东西:cookie session token cookie: Cookie,有时也用其复数形式 Cookie ...

  9. web安全漏洞之CSRF

    一.CSRF(跨站请求攻击)攻击的原理: 1.攻击原理: 网站使用cookie来存放用户的登录凭证 cookie会在同源的http请求中自动携带 2.基本攻击过程: 用户登录了受信任网站A,并在本地生 ...

最新文章

  1. Pcl:Normal的定义结构及输出
  2. 正向代理和反向代理??
  3. Python/Jupyter Notebook以及可视化的运用
  4. matlab识别不出linux链接,在Ubuntu上,从matlab调用外部脚本失败_linux_开发99编程知识库...
  5. python调用电脑蜂鸣器一直响_电脑开机蜂鸣器一直响,9声滴~,什么问题?怎么处理?...
  6. 基于modbus协议的工业自动化网络规范_工控学堂:解读Modbus通讯协议「宜收藏」...
  7. jpush java api_JPush極光推送Java服務器端API
  8. 学习过程中的一些想法
  9. 持续集成持续部署持续交付_自动持续开发和交付混合移动应用程序
  10. Android中Handler的使用方法——在子线程中更新界面
  11. tomcat内存占用过高_Tomcat 性能调优之 JVM 调优
  12. Mybatis-Spring扫描路径有重叠导致Invalid bound statement(not found)问题
  13. 运筹学——线性规划及单纯形法求解
  14. 多个条码标签如何在一张纸上打印
  15. IDEA打包程序与运行(windows环境)
  16. 分享几个小众又高薪的职业
  17. 《Think Python 2e》作业实现(二): 变量、表达式和语句
  18. gcc编译工具常用命令以及汇编语言
  19. 森林防火广播系统方案
  20. 投票找精英投票网是怎么回事?

热门文章

  1. python爬虫基础知识
  2. 马哈蒂尔:马云思维超前于时代,阿里巴巴能助力马来西亚重回正轨
  3. python中的命令,python学习——python中命令行
  4. 远程控制计算机控制不,远程控制电脑为什么打不了字
  5. 穿透内网远程访问群晖NAS
  6. 自然语言处理简介及研究方向
  7. matplotlib只显示部分横坐标刻度,隐藏部分横坐标刻度
  8. 【C语言】0x1F<<11等于0还是0xF800 ?
  9. Centos搭建服务
  10. 提示:Run-time error ‘339’:Cmponent 'MSCOMCTL.OCX'or one of its dependent..........的时候该怎么办?