关于mysql:有没有通过php保存到数据库来清理HTML代码?

Is there anyway to clean HTML code via php being saved to a database?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What's the best method for sanitizing user input with PHP?

我正在使用TinyMCE来允许用户编辑网页的一小部分。

该字段将保存到数据库中。

是否有一个正则表达式,我可以用来清理传入的HTML代码,以避免任何XSS / NULL / DROP TABLES类型的攻击?

我已经在单行输入文本/数字等上完成了这项工作,但在接收HTML字符串时不确定如何处理此问题。


我建议使用HTMLPurifier。


您可以使用PHP函数:striptagshtmlspecialchars

http://php.net/manual/en/function.strip-tags.php


你可以用这个 -

1
2
3
4
5
6
7
8
9
 function safe_sql($obj)
{
    $obj = htmlspecialchars($obj);
    $obj = str_replace('"',""",$obj);
    $obj = str_replace("'","'",$obj);
    $obj = str_replace("`","`",$obj);
    $obj = mysql_real_escape_string($obj);
    return $obj;
}

我正在使用它并且工作正常。
您也可以使用此功能使其正常(从数据库中提取数据后) -

1
2
3
4
5
6
7
8
9
10
 function to_Normal($data)
{
    $data = htmlspecialchars_decode($data);

    $data = str_replace(""",'"',$data);
    $data = str_replace("'","'",$data);
    $data = str_replace("`","`",$data);
    $data = nl2br($data);
    return $data;
}