1

我想将我的文本过滤为特定格式。假设我有这样的文字

Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是行业的标准虚拟文本,[iframe width="200" height="300"][/iframe]Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是业界标准的虚拟文本,

我想转换为:

Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是行业的标准虚拟文本, < iframe width="200" height="300"></iframe >Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是业界标准的虚拟文本,

Ex2:[caption]My Caption[/caption]将显示 <span class="caption">My Caption</span>

4

2 回答 2

1

James Deville 有一个很好的问题——可能最好的解决方案是使用已经组合好的文本标记系统(markdown 等)。

但是,如果您决定确实需要以自定义方式执行此操作(假设会有用户输入):

只要确保不要使用类似s/\[/</and的东西s/\]/>/。这将使您对漏洞敞开大门。

有人可以进入

[script type="text/javascript" src="http://malicious-server.haxx/XSS.js"]

这将被翻译成

<script type="text/javascript" src="http://malicious-server.haxx/XSS.js">

然后,任何查看该文本片段的人也会无意中请求该恶意 javascript。

摘要:如果您做错了,您可能会在您的站点中引入严重的安全漏洞。因此,如果可能,请使用已经实现的系统。否则,对您接受的标签非常有选择性。

于 2011-11-19T00:14:44.880 回答
1

您需要解析您的内容并将预定义的“组合”替换为 html 等效项。

此外,如果您接受来自成员的内容,则需要非常小心,因为您将直接更改带有替换的 html 代码。

于 2011-11-19T00:11:33.970 回答