浏览器的工作原理

2011 Tali
浏览器的工作原理:新式网络浏览器幕后揭秘
How Browsers Work: Behind the scenes of modern web browsers
How Browsers Work: Behind the scenes of modern web browsers

2018 Google
Inside look at modern web browser (part 1)
Inside look at modern web browser (part 2)
Inside look at modern web browser (part 3)
Inside look at modern web browser (part 4)

阿里云 CDN 部分地区 HTTPS 资源被劫持

公司在全国大部分地区都有业务,使用了阿里云作为 CDN 提供商,全链路使用 HTTPS 协议,证书是在阿里云申请的。
2018 年 1 月份出现过一次福建地区 HTTPS 被劫持,一个 js 资源被 302 至 https://ts.olyoneshop.com/rouyf/ghytuj/gyytru2.js 后将整个页面跳转至第三方页面。
由于是 HTTPS 协议被劫持,当时胡思乱想了一通 GFW 省级节点之类的想法,不过最后证明时出现了被迫害妄想症(哈哈,想多了)。
原因是由于阿里云 CDN 内部使用 HTTP 协议,在两个节点中间的数据传输,被中间链路中的某家运营商劫持了(具体哪家没说),内部改为 HTTPS 协议解决。

2018 年 10 月又在新疆地区出现 HTTPS 被劫持,随机某个 js 资源被替换为一段代码,动态注入原始 js 资源和 http://39.106.146.43:1616/mb.php?id=kh03 输出的 js 资源。
关键在于其代码水平过于低劣,劫持了 HTTPS 协议的 js 资源,却试图动态写入 HTTP 协议的 js 资源,妥妥的被浏览器的安全策略拦截了,造成正常页面出现错误。
联系了阿里云客服,确认 CDN 上的文件 MD5 是正常的。而在本地直接访问被注入的 url 链接无任何响应输出,且经查询得知 39.106.146.43 属于北京市阿里云机房(也有一说香港)。
不同于上次福建地区劫持的恶意页面跳转,本次新疆地区劫持试图悄悄注入未知功能的脚本,只是因为水平低劣而暴漏,于是被迫害妄想症又冒了上来(不回来真的吧)。
目前联系了客服,刷新了一下 CDN 缓存。至少测试的部分地区看起来已经正常了,至于是否完全正常,只有阿里云知道了。

后续还是出现了劫持,阿里云再次给出使用年初的解决方案。 

网络协议和网络安全普及分享大纲

# 网络协议

## OSI 和 TCP/IP 模型
### OSI 七层模型
### TCP/IP 四/五层模型
### 两个模型的差异

## DNS 协议
### A 记录
### CNAME 记录
### 域名规则
### 泛域名解析

## TLS/SSL 协议
### 非对称算法和公私钥
### CA 证书体系——互联网安全的基石
### CA 漏洞事故
### 单双向证书认证

## HTTP 协议
### 请求方法和幂等概念
### 跨域异步请求和 CORS
### 简单请求和预请求
### REST 风格和状态码
### HTTP/1.1 keeplive
### Cookie 端口无关
### Cookie httponly

## HTTP/2
### Stream 传输
### Header 压缩
### 多路复用和优先级
### 服务器推送和现状

# 网络安全

## 信息安全部门
### 金XX
### 童X
### 郭XX

## Web 安全层级
### HTTP 劫持
### DNS 劫持
### SQL 注入
### Shell 注入
### DDoS 攻击

## 业务安全
### 异常流程
### 跳转地址

## 浏览器安全
### HTTPS 混合内容
### CSP 内容安全策略
### SRI 子资源完整性
### HSTS 严格传输安全
### HPKP HTTP 公钥固定扩展

## 编码安全
### XSS 跨站脚本攻击
#### DOM XSS
#### 反射型 XSS
#### 持久型 XSS
### CSRF 跨站请求伪造
#### 未检查请求来源
#### 未区分 GET/POST
#### 未区分 Search/Form/Cookie

## 框架 API
### Element innerHTML
### jQuery html()
### React dangerouslySetInnerHTML
### VUE v-html
### Angular [innerHTML]

 

Android 平台 APP 内 WebView 页面,禁止跟随系统字体大小缩放

Android 系统字体大小被设置为“中号”,造成 APP 内 WebView 布局混乱,系统浏览器布局正常。
表现为 html 页面的 css 样式中 font-size 值,不等于实际渲染的值,如:

可通过设置 WebView 的 TextZoom 属性解决:

IOS 平台可设置(未经验证):

微信平台可设置(未经验证):

参考:
禁止APP内Webview页面跟随系统缩放字号
WebSettings