<div>里面的监狱元素?</div>

时间:2013-12-20 05:12:26

标签: html xhtml css-position css

我将设计一个网页,其中包含<div>个允许用户使用CSS提交其(X)HTML并插入<div>个内容的网页。

我知道它会严重影响XSS,因此我将使用HTML Purifier来清理(X)HTML和CSS。例如,我绝对不允许<script><iframe>和外部资源。但我希望允许几乎所有其他标签和CSS属性。

问题就出现了。我希望将客户端元素(可视化)保留在<div>(s)内。我使用position: absolute;overflow: hidden;尝试了部分解决方案,如下所示:

<html>
<head>
<style>

div#jail {
  position: absolute;
  overflow: hidden;

  border: 1px dotted red;
  height: 200%; width: 50%;
  left: 25%; top: 25%;
}

/* All client's CSS is ensured prefixed with div#jail */
div#jail .client_code {
  margin: 0;
  position: absolute;
  top: -8px;
  z-index: 1000;
}

</style>
</head>

<body>
<div id="jail">
  <p class="client_code">elements being jailed</p>
</div>
</body>

</html>

到目前为止,除了<p>之外,我已成功将div#jail内容position: fixed;置于position: fixed;内,用于大多数客户的HTML元素和CSS。

也就是说,如果用户使用CSS div#jail .client_code { position: fixed; top: 0px; } ,他们的元素可以突破监狱:

position: fixed;

那么,阻止{{1}}是否可以,并且监狱将是强硬有效的?

如果有任何其他想法/设计来实现这一点,欢迎任何解决方案!非常感谢!

0 个答案:

没有答案