PHP中的Clean&Safe字符串

Clean & Safe string in PHP

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

Possible Duplicates:
PHP: the ultimate clean/secure function
What's the best method for sanitizing user input with PHP?

我应该在我的函数中添加什么来确保传递它的每个字符串都是"服务器友好的"? 我使用这个小函数来检查包含名称,电子邮件地址和ID的输入。

1
2
3
4
5
6
   function checkInput($str) {
        $str = @strip_tags($str);
        $str = @stripslashes($str);
        $str = mysql_real_escape_string($str);
        return $str;
    }


我会删除一些在这些字符串中无关的特殊字符,可以用于代码注入,比如$%#<> | 等等。

1
2
$invalid_characters = array("$","%","#","<",">","|");
$str = str_replace($invalid_characters,"", $str);

What should I add to my function to be sure that every string that passes it will be 'server-friendly'?

这应该工作:

1
2
3
function checkInput($str) {
  return"";
}

有关更详细的说明,请参见此处


服务器友好是什么意思?

对于诸如电子邮件地址之类的验证,请查看数据过滤。

确保字符串对于数据库的使用转义是安全的,例如mysql_real_escape_string

输出数据时使用htmlspecialchars


关于DataBase,检查PDO占位符。 他们是跨DBMS。