BBCode的安全preg_replace [url =] [/ url]

时间:2012-08-19 11:40:11

标签: php preg-replace bbcode

我正在寻找一个针对URL的REGEXP BBCode。看了一下之后,我找到了this

$message = preg_replace('@\[url=([^]]*)\]([^[]*)\[/url\]@', '<a href="$1">$2</a>', $message);
$message = preg_replace('@\[url\]([^[]*)\[/url\]@', '<a href="$1">$1</a>', $message);

当然,我知道这很容易打破,如图所示。

[url=#" onclick="javascript:alert('hax!');]test[/url]

其中输出以下内容。

<a href="#" onclick="javascript:alert('hax!');">test</a>

哪个不好。什么是[url =] [/ url]更好更安全的REGEXP?

如果重要,我在preg_replaces之前有这行代码。

$comment = mysql_real_escape_string(nl2br(strip_tags($_POST['comment'])));

0 个答案:

没有答案