【书名】:白帽子讲Web安全
【读书笔记】:在 IE5-8 的时代,有过一个 CSS 表达式 (CSS Expression)解决方案,可以在 CSS 里面写 JS,给 CSS 属性赋一个表达式,当时用来做很多 hack 方案,但是作为一个 Web 时代临时的解决方案也有它的弊端
1. 不符合 Web 标准,CSS 表达式这种在样式中插入 JS 代码的方式,有悖于 Web 标准的结构、表现、行为相分离的理念。
2. 效率低下,一个 CSS 表达式会反复执行,这会大大消耗计算机的硬件资源,极端情况下会导致浏览器的崩溃。
3. 带来安全隐患,CSS 表达式暴露了一个脚本执行的上下文,可能带来脚本注入的隐患。比如以前就能在 background 里面执行 JS 代码,进而为 XSS 提供了途径。
比如: background: url(javascript:alert("XSS!"));
最近的 CSS Houdini
developer.mozilla.org 跟这个 CSS Expression 有点类似,在浏览器正式上线后可以关注一下
【读书笔记】:在 IE5-8 的时代,有过一个 CSS 表达式 (CSS Expression)解决方案,可以在 CSS 里面写 JS,给 CSS 属性赋一个表达式,当时用来做很多 hack 方案,但是作为一个 Web 时代临时的解决方案也有它的弊端
1. 不符合 Web 标准,CSS 表达式这种在样式中插入 JS 代码的方式,有悖于 Web 标准的结构、表现、行为相分离的理念。
2. 效率低下,一个 CSS 表达式会反复执行,这会大大消耗计算机的硬件资源,极端情况下会导致浏览器的崩溃。
3. 带来安全隐患,CSS 表达式暴露了一个脚本执行的上下文,可能带来脚本注入的隐患。比如以前就能在 background 里面执行 JS 代码,进而为 XSS 提供了途径。
比如: background: url(javascript:alert("XSS!"));
最近的 CSS Houdini
展开
评论
1