一篇搞b站的文章

loop_0 · 2020-05-14 15:39:20 · 2591 次点击 · 预计阅读时间 2 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2020-05-14 15:39:20 的文章,其中的信息可能已经有所发展或是发生改变。

一篇搞b站的文章

csrf攻击简述:

  • CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF

  • 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。

  • 具体原理就不详细解释了推荐一篇文章:浅谈CSRF攻击方式

  • 了解过csrf攻击, 我们应该明白, 所谓的csrf攻击就是:
    • 你在你的常用网站登录了
    • 此时被xxx恶意网站的连接吸引, 访问xxx恶意网站
    • xxx恶意网站的页面向的常用网站发起跨域请求
    • 跨域请求中携带了常用网站的cookie, 盗用了你的登录状态

csrf思路分析:

浏览器支持的跨域请求的方式大体有两种:

  • cros 官方标准, 使用时需要服务端支持, 否则会有请求方法和header限制(header限制不能携带cookie),有两种请求方式这里不做过多介绍, 依然推荐一篇文章:跨域资源共享 CORS 详解,总之cros很安全。
  • jsonp 方式, 限制是只能使用GET请求(规范GET请求都是只读操作), body中无法携带数据。

网络上open某li某licsrf防御

  • 全局的jsonp CSRF防御:

    全局-csrf防御.PNG

    • 首先需要知道的一点是, jsonp 方式发起的跨域请求header中一定有referer字段

    • 如果请求没有携带referer判断是不是jsonp请求, 一般不是大概, 双重保障判断一下, 如果不是方行, 恩, 方便接口测试, 也方便了网络爬虫, 代码作者:"我是csrf防御, 网络爬虫关我何事? " 恩, 合情合理.

    • 如果请求携带referer则检测domin是不是允许的那些domain, 如 bilibili.com, 完美防御jsonp原理进行的跨域攻击.
    • 笔者目前并未找到b站上的jsonp接口, 未提供jsonp接口依然要检测jsonp csrf, 可见b站的安全意识很高, 这样做的好处也是可以防止不小心在GET请求接口中做了敏感的写操作而产生的web漏洞.
    • jsonp out.
  • cros 跨域

    cros.PNG

    • 笔者目前看到的接口都是通过cros简单请求的方式跨域, api getway同样也实现了非简单方式的跨域请求
    • crosOrigin验证机制也有好好实现
    • cros官方的跨域规范, 安全性很好, 理所应当out.
  • 用户登录验证CSRF防御

    用户登录验证-csrf防御.png

    • 笔者不解的, 这段代码应该是对盗用用户登录状态的 cros跨域请进行的防御, 而个人感觉crosOrigin验证机制已经很健全了呀, 双重保障?笔者知识盲区?未知的跨域攻击?
    • unknown csrf out.
  • 最后一道防御

    • 良好的编码规范
    • crsf out

结束


有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2591 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传