为什么"显示" css属性不在owasp java库的默认白名单中?

时间:2016-04-19 20:52:10

标签: html css owasp

我目前正在后端服务上使用owasp java library来清理客户端发送的HTML。 owasp java库有一个css规则的CSS白名单,它允许在html元素内的任何样式标记内。您可以找到白名单here

我注意到有关此白名单的一件事是省略了display属性。这意味着如果我创建如下代码的HTML代码:

<div style="margin-left:0px;display:none;"></div>

然后使用默认样式白名单的HTML清理程序将删除显示规则,并且保存在服务器上的HTML将是:

<div style="margin-left:0px;"></div>

为什么display属性默认不是白名单?

1 个答案:

答案 0 :(得分:1)

因为其他白名单样式因为元素根本不显示而无法正常工作

<强>更新

  

display有很多奇怪的边缘情况会影响布局   方式。

     在大多数情况下,

inlineblockinline-block可能都是安全的。

     

fixed可能没有安全感。

     

table和其他人可能很狡猾,因为可能有办法打破   视觉遏制。

     

即使blockinline block也可以打破视觉遏制   使用仅在嵌入器修复时允许内联标记的策略   容器的width并且不会隐藏overflow

Source