是否建议在PHP中结合两个或多个内置消毒功能的消毒功能?

时间:2012-01-10 09:30:08

标签: php security function sanitize

是否可以使用一个函数来清理由于表单提交或任何其他请求而导致的传入输入。这是节省时间,但有效性和效率的问题仍然困扰着我。例如,

   function clearSpecialChars($str)
   {
     $str=htmlentities($str);
     $str=strip_tags($str);
     $str=mysql_real_escape_string($str);

     return $str;
   } 

因此,当我收到表单提交时,我会这样做:

    $username=clearSpecialChars($_REQUEST['username']);

    $email=clearSpecialChars($_REQUEST['email']);

从根本上说,我不希望用户输入任何HTML。

2 个答案:

答案 0 :(得分:2)

每个功能都有自己的用途,不应该使用任何不能用于其预期用途的功能。

  1. 在使用mysql查询中的参数之前,你应该使用mysql_real_escape_string。
  2. 你应该在输出到页面之前使用htmlspecialchars。
  3. 就是这样。

答案 1 :(得分:0)

是的,您可以创建一个简单的函数来在使用之前清理值。我使用这样的函数:

function sanitize($value)
{
    return htmlentities(addslashes($value));
}

哪个转义'和'并转换html实体中的所有适用字符。我的其他选项更复杂,但你可以从它开始。