【发布时间】:2010-11-29 08:57:31
【问题描述】:
我正在使用一个丰富的 html 编辑器,我想为应该允许进入的内容创建一个白名单。
我听说你应该使用白名单而不是黑名单,因为这样做比尝试然后创建黑名单更容易。
我什至看到了一些例子,人们可以将脚本标签隐藏在 css 样式部分中。
这是编辑器生成的示例
<span _moz_dirty="" style="font-weight: bold;">
aaaaaaaaaaaa
<br _moz_dirty=""/>
ffffffffffff
<br _moz_dirty=""/>
<span _moz_dirty="" style="text-decoration: underline;">
fffffffff
<br _moz_dirty=""/>
</span>
<span _moz_dirty="" style="text-decoration: line-through;">
aaaaaaaaaa
<br _moz_dirty=""/>
<sub _moz_dirty="">
</sub>
<sup _moz_dirty="">ggg</sup>
<sub _moz_dirty="">
</sub>
</span>
</span>
<ol _moz_dirty="">
<li _moz_dirty="">1333</li>
<li _moz_dirty="">ff</li>
</ol>
<ul _moz_dirty="">
<li _moz_dirty="">ggg</li>
<li _moz_dirty="">ff</li>
</ul>
<div _moz_dirty="" style="margin-left: 40px;">
ffffff
<br _moz_dirty=""/>
</div>
fff
<br _moz_dirty=""/>
<br _moz_dirty=""/>
<a _moz_dirty="" href="http://">ffff</a>
<br _moz_dirty="" type="_moz"/>
<span _moz_dirty="" style="font-weight: bold;">
<span _moz_dirty="" style="text-decoration: underline;"/>
</span>
所以我想我的白名单将允许这些标签具有正确的类名
<span>
style - font-weight: bold, text-decoration: underline, margin-left, margin-right
<br />
<a>
<ol>
<ul>
<li>
所以我正在尝试制作一个可以弹出到我的 C# 代码中以仅检查这些标签的正则表达式。
所以我试着从风格的东西开始
style="[^font\-style|weight]+\s*:\s*[bold|italic]+\s*;\s*"
但它不起作用。我试图从我给你的样本中改变一些东西,但没有任何结果。
【问题讨论】: