无论如何通过将php保存到数据库来清理HTML代码?

时间:2012-05-21 14:48:21

标签: php mysql html xss

  

可能重复:
  What's the best method for sanitizing user input with PHP?

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

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

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

我已经在单行输入文本/数字等上完成了这项工作,但在接收HTML字符串时不知道如何解决这个问题。

3 个答案:

答案 0 :(得分:11)

我建议您使用HTMLPurifier

答案 1 :(得分:5)

您可以使用PHP函数:striptagshtmlspecialchars

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

答案 2 :(得分:2)

你可以使用它 -

 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;
}

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

 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;
}