为什么<style>块被认为是不安全的标记?

Nix*_*Nix 5 html security

我最近插入了PageDown来处理来自textarea的一些HTML输入,我注意到它修剪了"样式"元素.

我只是想知道为什么这些被认为是不安全的?

Dan*_*ert 4

IE 有一个特殊的 CSS 功能,允许 JavaScript 嵌入到 CSS 中。仅此一点就足以成为想要禁止<style>标签的理由。

behavior:表达式也可以输入到style attribute中,因此您应该确保从白名单style中删除属性,或者将特定样式列入白名单。您应该尝试将样式列入黑名单,因为脚本可以通过多种方式进入样式,并且计划在将来添加更多方式

另外,正如其他人提到的,您可以使用 CSS 完全改变页面的外观。我想不出在不允许其他标记(如标签<form>)的情况下这可能是有害的,但如果有足够的创造力,我确信恶意的人可能会想出一些想法。