哪种方法可以正确过滤PHP中的HTML编辑器?

时间:2010-07-07 11:02:31

标签: php editor filter javascript

我在我的网站上使用TinyMCE编辑器。我想在插入数据库时​​学习正确的输入法。需要使用哪些过滤器?例如,我以这种方式获得DB的输入;

$example = $_POST['example'];

<textarea name="example"></textarea>

我没有使用htmlscepialchars();因为我需要html标签。

“抱歉我的英语不好。”

2 个答案:

答案 0 :(得分:1)

HTMLPurifier。

在此处下载:http://htmlpurifier.org/

包括它:

include 'path/to/HTMLPurifier.auto.php';

使用它:

$config = HTMLPurifier_Config::createDefault();
$config->set('Core', 'Encoding', 'UTF-8');
$config->set('XHTML', 'Doctype', 'XHTML 1.0 Strict');
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify( $dirty_html );

知道在HTML中没有像这样清除XSS攻击的情况下睡得很好。

人们建议mysql_real_escape_string()可能没有得到你的问题(或者我没有),你问的是如何从WYSIWYG编辑器过滤HTML标记,以便它可以安全地存储在数据库中。

mysql_real_escape_string()作为防止SQL注入的保护,但准备好的语句(谷歌“PDO”)更适合。

答案 1 :(得分:0)

如果我理解正确,你想将html保存到你的数据库,需要一些方法对它进行编码吗?

在保存到db之前,您可以执行以下操作:

urlencode($_POST['example']);

当你检索时,你可以urldecode($ data);