我想在用户的textarea上使用htmlspecialchars,但我希望他允许使用粗体和斜体。我怎么能不在这些标签上使用htmlspecialchars?
答案 0 :(得分:5)
使用比抱歉更安全的方法。那是你首先应用htmlspecialchars
,然后非常有选择地撤消它/将你的两个标签列入白名单:
$html = htmlspecialchars($html);
$html = preg_replace('#<(/?[bi])>#', '<$1>', $html);
只有当这些标签只包含那些确切的两个字符串,没有额外的属性时才有效。然而,没有任何安全性或一致性问题(除了这个简短版本没有声明平衡标签,ooops)。
如果您需要更复杂的规则,那么您应该注意HTMLPurifier。
答案 1 :(得分:-2)
我喜欢使用tinyMCE jquery插件来做这种事情。
希望有所帮助。