每周技术文章 No.247 2020.1.13-5.5
产品、项目
- 45 周岁、IPIP 的七年之痒与最坏打算,这种需要持续投入才能保持的好产品,应该有其对应的价值。
- 《JavaScript: The First 20 Years》,JavaScript 发展历史;正在进行中文翻译:语言诞生、创立标准。
- 《工业互联网体系架构 2.0 2020.4》。
- IKnowWhatYouDownload,我知道你 BT 下载过什么,哈哈。
- 《Designing Data-Intensive Application》,讨论了很多数据库、消息服务、批流处理等系统的设计要点;除了原版,还可以翻翻《设计数据密集型应用》中文翻译。
- 知妖(中国妖怪百集),我先翻翻九尾狐,感觉这得配着自说自话的总裁 - 山海經&上古傳說来看,呵呵。
前端、交互
- UI component series Button Design,按钮设计细节的讨论;另见中文翻译。
- 前端资源预加载,prefetch、preload,quiklink。
- HTML 全局属性列表大全,ES6 Math 方法和 Number 新特性简介,检测 DOM 尺寸变化 JS API ResizeObserver 简介,备忘。
- 通过 CSS 向 JS 传参来识别系统暗色、亮色主题(或者生效的其他属性),也可以使用
window.matchMedia("(prefers-color-scheme: dark)")
。 - 一个 PRD 的诞生 - 教新手设计一个顶级表单定制后台 PRD,比较完整的讨论。
后端、系统、存储、网络
- WannaRen 事件分析报告,“本次事件中的 WannaRen 勒索软件是国产攻击套件中的一部分”。
- 网络层绕过 IDS/IPS 的一些探索,理解 IPS 工作原理和现阶段主要限制来下手。比如,制造 TCP 分片、伪造 TCP 状态、跳过 rst 直接发送相应、使用 IPv6 等。
- 三年之久的 etcd 3 数据不一致 bug 分析,发现集群正常,各节点数据量不一致;数据写进 WAL 但是没进 DB,应该是 apply 异常被丢弃了,进一步发现开启鉴权时,AuthRevision 不一致会导致 apply 失败;是因为 auth 操作调用 commitRevision 后 consistentIndex 没有持久化,如果 etcd 重启了,权限写操作就会 apply 两次,于是 AuthRevision 就不一致了。修复的提交 PR #11652,还给出了相似问题的修复,和改进 apply 调试的提交。
- Redis 6.0 GA 了,来看看 Redis 6.0 客户端缓存特性及实践,完整需要
RESP3协议
客户端支持。 - 细数 redis 的几种 getshell 方法,一类是利用 Redis 写文件:开机自启动、计划任务、添加 SSH Key、WebShell;另一类是触发应用库反序列化过程中的漏洞,比如 Java 的 fastjson、Jackson 等;还有一个是 Redis <= 5.0.5 的 Lua RCE 漏洞,参考redis-rce。
- Monitoring Network Stack,分析了监控 Linux 网络性能的数据来源,还包括一个自定义脚本,输出 Prometheus 数据格式。
- Why strace doesn’t work in Docker,包括隔离和权限,使用
--cap-add=SYS_PTRACE
除了允许ptrace
系统调用,还需要允许其依赖的process_vm_readv
。docker 19.03 + Kernel 4.8 之后就默认允许 ptrace 了。 - OLAP 任务的并发执行与调度。
- Flink DataStream 关联维表实战,非常不错的应用分析。
- VXLAN 基础教程:VXLAN 协议原理介绍。
- 调度系统设计精要。
- Understanding Microsoft Security Baselines and Applying Them – Part 1,Part 2,可否应用?
- 谈一谈 Linux 与 suid 提权,尽量减少给程序
suid
权限,使用 capabilities 更精细的控制,setcap
。 - LISA2019 Linux Systems Performance。
- Rust 半小时教程。
- 时间序列异常检测算法梳理。
硬件、设备
- 树莓派集群的尝试,Five years of Raspberry Pi clusters;不过,还是对 Oracle 那个机柜印象更深,呵呵。
个人、团队
- 技术面试中,什么样的问题才是好问题? 很好的话题,这部分经验特别欠缺。
- 科普备用,Bash 脚本教程,一文带你了解 HTTP 黑科技。
- CS Visualized: Useful Git Commands,非常不错的 Git 命令动画表达。
- 技术人间自有法则在,专业、靠谱,生产系统出问题力求尽快恢复。
- 学习灾难,“定位准确、机理清楚、可以复现、措施有效、举一反三”,“工具化,通用化,标准化,自动化,数据化”,“定期做灾难演练”。
- 在线查毒工具 VirusTotal 的 N 种玩法——从“误报/漏报”聊到“攻击者对它的利用”,因为勒索病毒第一次知道了 VirusTotal,这个科普不错。