知识卡片
减少请求数量同时降低攻击伤害和误报
内容
把页面上散落的多个小图标合并成一张图(精灵图技术),表面上是性能优化,实际效果是同时压低了两类风险:正常用户产生的请求数变少,攻击者想制造同等破坏所需的请求数门槛相应提高,而且因为正常流量的请求模式变得更集中、更可预测,用来识别恶意流量的规则也能做得更精准、误伤更少。这提示很多为提升日常性能而做的优化,本身就是一种隐性的DoS防御投入,两个目标经常可以用同一个改动同时达成。
参考来源
- 位置:《Google系统架构解密:构建安全可靠的系统》第10章《缓解拒绝服务攻击》10.2.2节避免不需要的应用程序请求(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_086.html`)
- 结论依据:原文说明将多个小图标拼合为精灵图能减少请求数量,并明确指出"这样还有一个额外的好处:在减少真实用户发起的请求数量的同时,还能减少识别恶意机器时的误报率",Google一个服务用此法每天节省1000万次请求。
- 原始内容:如果页面中包含多个小图标的话,最有效的办法是将这些图标拼合成一张更大的图。这种技术叫作"精灵图"(spriting)……这样还有一个额外的好处:在减少真实用户发起的请求数量的同时,还能减少识别恶意机器时的误报率。