我在我的网站上使用TinyMCE编辑器。我想在插入数据库时学习正确的输入法。需要使用哪些过滤器?例如,我以这种方式获得DB的输入;
$example = $_POST['example'];
<textarea name="example"></textarea>
我没有使用htmlscepialchars();因为我需要html标签。
“抱歉我的英语不好。”
答案 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);