惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
博客园_首页
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
The Cloudflare Blog
罗磊的独立博客
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
J
Java Code Geeks
MyScale Blog
MyScale Blog
G
Google Developers Blog
U
Unit 42
Y
Y Combinator Blog
P
Proofpoint News Feed
Vercel News
Vercel News

吹比💨

NFS 服务引发的一次“诡异”应急响应 银狐使用WDAC来对抗杀软 浏览器第三方Cookie保护导致无法使用Github.dev 使用pushState伪造浏览器地址栏 一次排查网站劫持过程流水账 手动导出 Microsoft Authenticator 中的2FA密钥 使用CloudFlare的IP Lists功能来做访问控制 FrontJS网站错误监控插件存在弹窗广告 宝塔面板可能存在未知漏洞的分析与处置方法 CDN厂商解决域前置问题 中文域名那些事 TLS握手指纹(JA3/JA3S)检测恶意软件流量 [A-Z]{2}\d{2}.cc 团伙的一些公开信息 Azure旗下奇怪的静态托管服务 Csrf与浏览器第三方Cookie策略的问题 Pppoe密码嗅探 Publicsuffix那些事 一次有意思的域名追踪 CobaltStrike通信中host字段的获取 XFF那些事 Referrer Policy那些事 使用CloudFlare来为网站开启客户端证书验证 DNS那些事 用flask来在线管理你的iptables 屏蔽掉向日葵的有效方法 帝国cms在防止内容采集方面做的工作 身份验证器是如何验证我们的身份? 利用GoogleAppsScript自动回复短信实现保号 Nginx实用模块 有关跨域请求的一些记录
CORB那些事
榆木 · 2020-10-14 · via 吹比💨

本站底部调用了ip.sb的API以显示访客IP,突然某一天不能显示了。本以为是now.sh的hugo部署问题。闲暇时分析一下才明白是CORB问题。

全称为 Cross-Origin Read Blocking,跨域读取阻止。旨在为可疑的跨域资源负载可能会在网络浏览器到达网页之前被识别并阻止。

ip.sb 存在的问题与修复方案

(通过沟通,已经修复。)问题出现在jsonp的调用方式上

<script>
function getip(json){
    document.write("My IP address is: ", json.ip);
}
</script>
<script type="application/javascript" src="https://api.ip.sb/jsonip?callback=getip"></script> 

如上,jsonp方式通过<script>标签对api进行调用。一切看起来是正常的。而https://api.ip.sb/jsonip?callback=getip 的头部包含了参数X-Content-Type-Options: nosniff并且返回的Content-Type字段值为application/json;charset=UTF-8

nosniff头的作用为:

下面两种情况的请求将被阻止:

  • 请求类型是"style" 但是 MIME 类型不是 “text/css",
  • 请求类型是”script" 但是 MIME 类型不是 JavaScript MIME 类型

所以此处ip.sb返回的数据会被浏览器拦截。而修复方案也很简单。

  1. 去掉头部返回的 x-content-type-options: nosniff 参数

  2. 将 content-type 返回的参数改为javascript类型,例如Content-Type: text/javascript;charset=UTF-8

CORB与XSS

有很多脆弱的站点允许用户托管任意文本文件。就容易造成滥用。比如XSS攻击时多使用<script><style>标签引用,就容易被当作JS脚本远程调用,这是平台运营者不希望发生的。运营方就可以通过设置nosniff头与设置返回的content-type来对滥用进行限制。比如github(raw.githubusercontent.com域下资源)与gitee(https://gitee.com/xxx/raw/ 下资源)都用此手段来进行防止滥用。