发现知乎的一个Bug,并且我绕过了此Bug,沾沾自喜中...
发现问题
在知乎点击修改头像,上传图片时发现一片空白。凭着程序员的直觉,第一反应时看下控制台是否有报错。果然发现如下:

Refused to load the image 'data:image/jpeg;base64...' because it violates the following Content Security Policy directive: "default-src *". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.
第一次发现此类报错,果断google之。发现为抵御XSS攻击,配置了响应参数CSP(Content Security Policy)引起的。
HTML页面的响应参数如下:
Content-Security-Policy:default-src *; frame-src *.zhihu.com getpocket.com note.youdao.com; script-src *.zhihu.com *.google-analytics.com zhstatic.zhihu.com 'unsafe-eval'; style-src *.zhihu.com 'unsafe-inline'
错误提示的大概意思是由于没有配置img-src,所以默认采用default-src的配置。
但是default-src配置为*,所以理论上应该是不会报错的。查看了  https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives#default-src文档如下

误打误撞解决问题
所以我只能先认定只配置*是存在问题的,突然想着本地代理映射文件然后修改响应参数去验证,于是保存HTMl文件,并用charles映射到本地。
神奇的事情突然发生了,竟然能上传成功。


突然为程序员的自己感到自豪。
后记
虽然解决了上传问题,但是还有好多疑问。
- 对default-src配置*是否有效还需要进一步确认。
- 通过代理本地文件就能绕后CSP,是否存在安全问题。
- 有没有代理可以修改响应参数的。
发现知乎的一个Bug,并且我绕过了此Bug,沾沾自喜中...的更多相关文章
- 发现IE 9的一个独有的小bug,并附解决方案
		在最近的项目中,解决了一些浏览器兼容方面的bug,这篇主要描述在IE 9在渲染值为auto的overflow-x属性时,所产生的专属bug及解决办法. 1.问题描述 在做一个收货地址管理静态页面的时候 ... 
- 面试官问,说一个你在工作非常有价值的bug
		如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个 ... 
- 一个linux bbr存在的调用顺序bug
		最近跟踪bbr的状态转换的代码,发现一个问题: [,min_rtt_us=,full_bw=,cycle_idx=,pacing_gain=,cwnd_gain=,rtt_cnt= [,min_rtt ... 
- Java中,一个存在了十几年的bug...
		本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ... 
- 记一个关于std::unordered_map并发访问的BUG
		前言 刷题刷得头疼,水篇blog.这个BUG是我大约一个月前,在做15445实现lock_manager的时候遇到的一个很恶劣但很愚蠢的BUG,排查 + 摸鱼大概花了我三天的时间,根本原因是我在使用s ... 
- 知乎上一个关于Android面试的问题答案
		由于链接出错,这里附上原文链接:Touch Me 前段时间面试,自己以及小伙伴们简要的汇总的一些面试问题,可以对照的参考一下吧- 建议就是在面一家公司之前了解好这个公司的app是以什么为驱动的,例如电 ... 
- 抓到 Netty 一个隐藏很深的内存泄露 Bug | 详解 Recycler 对象池的精妙设计与实现
		欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review Netty 代码的 ... 
- 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。
		描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数. 输入 第一行为M,表示测试数据组数.接下来M行,每行包含一个测试数据. 输出 ... 
- 页面生命周期里面还有很东西,如PageHandlerFactory等等这些东东也够吃一壶的,发现每走到一个领域,发现要学的东西实在是太多太多啦,总感觉自己所学的东西只是沧海一粟,走过了这道坎,又是一片海洋,我只能呐喊:生命永不止息,学海无涯----够用就好。
		页面生命周期里面还有很东西,如PageHandlerFactory等等这些东东也够吃一壶的,发现每走到一个领域,发现要学的东西实在是太多太多啦,总感觉自己所学的东西只是沧海一粟,走过了这道坎,又是一片 ... 
随机推荐
- Apache2.2安装图解
			Apache2.2安装图解 2010-12-14 15:32:44| 分类: 不学无术之杂 | 标签:安装 端口 httpd apache2.2 服务器 |字号 订阅 Apache音译 ... 
- Google Analytics添加到网站
			把Google Analytics添加到网站的具体方式 https://developers.google.com/analytics/devguides/collection/analyticsjs ... 
- Django  中ORM  的使用
			一:Django 中 orm 的使用 1:手动新建一个数据库 2 :告诉Django连接哪个数据库 settings.py里配置数据库连接信息: #数据库相关的配置项 DATABASES ={ 'de ... 
- CodeForces - 1017D Round #502 D. The Wu(状压预处理)
			D. The Wu time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ... 
- 微信公众号授权登录,提示“redirect_uri 参数错误”
			做微信公众号开发授权登录的时候遇到的坑... 后台服务用node,index.js相关代码如下: const oauth = new OAuth(conf.appid, conf.appsecret) ... 
- poj1837 Balance
			Balance POJ - 1837 题目大意: 有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数. 其中可以把天枰看做一个以x轴0点 ... 
- 3分钟简单了解 prototype 和 __proto__
			关于prototype 1. 所有的函数都会有一个prototype属性,属性值是一个普通对象: 2. 当我们去new一个构造函数的实例时,构造函数的原型对象(prototype)会被赋值给它实例的[ ... 
- 条件分页 分页条件和页参数传递方式一 超链接拼串 方式二 使用查询表单searchForm
			<%-- Created by IntelliJ IDEA. User: jie Date: 2019/5/10 Time: 20:00 To change this template use ... 
- .bat 文件学习
			参考文章:http://www.cnblogs.com/glaivelee/archive/2009/10/07/1578737.html 重点: @echo off 关闭回显,不显示脚本中的命令 e ... 
- github版本库使用详细教程(命令行及图形界面版)
			Git是一个分布式的版本控制系统,作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选 ... 
