Html 监狱内的罪犯<;部门>;?
我将设计一个网页,其中包含Html 监狱内的罪犯<;部门>;?,html,xhtml,css-position,css,Html,Xhtml,Css Position,Css,我将设计一个网页,其中包含(s),允许用户使用CSS提交他们的(X)HTML,并插入这些(s) 我知道它会受到XSS的严重影响,所以我将使用HTML净化器来净化(X)HTML和CSS。例如,我绝对不允许、和外部资源。但我希望允许几乎所有其他标签和CSS属性 问题来了。我希望将客户端元素(可视)保存在中。我尝试了部分解决方案,使用position:absolute和溢出:隐藏,如下所示: <html> <head> <style> div#jail { p
(s),允许用户使用CSS提交他们的(X)HTML,并插入这些
(s)
我知道它会受到XSS的严重影响,所以我将使用HTML净化器来净化(X)HTML和CSS。例如,我绝对不允许
、
和外部资源。但我希望允许几乎所有其他标签和CSS属性
问题来了。我希望将客户端元素(可视)保存在
中。我尝试了部分解决方案,使用position:absolute代码>和溢出:隐藏代码>,如下所示:
<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>
因此,是否可以只阻塞位置:固定代码>,那么监狱将是严厉而有效的
如果有任何其他想法/设计来实现这一点,欢迎任何解决方案!非常感谢 你的标题很吸引人:)@cHao,客户端的CSS将添加前缀div#jail
。因此,它将成为div#jail body div#jail{overflow:visible;}
。客户端代码中不允许使用
和
标记(因为它们在DIV中没有意义)。是的……我重读了这篇文章,注意到:)想知道:你对CSS的解析有多彻底?特别是选择器?我能说+div
或类似的话吗?这会选择“监狱”之外的东西吗?谢谢你的回复,谢谢你的关注!让我们一起解决这个问题:)这会引起很多麻烦。您确定要允许HTML吗?BBCode或降价似乎更合适。如果你使用HTML,我会使用白名单而不是黑名单。您是否要阻止像onmouseover
这样的javascript属性?否则用户可以这样做。
div#jail .client_code {
position: fixed;
top: 0px;
}