【发布时间】:2011-07-06 05:01:55
【问题描述】:
我有一个简单的问题(不适合我),好的,首先请看这个:
$msg=preg_replace("/\[b(.*?)\](.*?)\[\/b\]/i", "<b $1>$2</b>", $msg);
好的,在那个正则表达式上,$msg 将替换找到的任何东西并将其放入新的形式(我不知道如何解释,举个例子怎么样):
会转
[b]TEXT[/b]
进入
<b>TEXT</b>
不然会转
[b style="color: red;" title="HELLO"]TEXT[/b]
进入
<b style="color: red;" title="HELLO">TEXT</b>
这就是问题的根源,如果它转向会发生什么:
[b onclick="SOME TROJAN SCRIPT"]TEXT[/b]
进入
<b onclick="SOME TROJAN SCRIPT">TEXT</b>
我想要做的不是替换 [b attribute1 attribute2...attributeN] 之后的所有属性,该函数将保留这些属性只要它们不以 on 开头(比如 onClick、onMouseOver...)。
感谢您的任何建议^^!先谢谢各位了...
【问题讨论】:
-
你可以做一个允许的属性白名单