清洁& PHP中的安全字符串

时间:2010-12-15 14:55:31

标签: php string code-injection

  

可能重复:
  PHP: the ultimate clean/secure function
  What's the best method for sanitizing user input with PHP?

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

   function checkInput($str) {
        $str = @strip_tags($str);
        $str = @stripslashes($str);
        $str = mysql_real_escape_string($str);
        return $str;
    }

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

服务器友好意味着什么?

对于电子邮件地址等验证,请查看data filtering

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

输出数据时使用htmlspecialchars

答案 2 :(得分:2)

  

我应该在我的函数中添加什么来确保传递它的每个字符串都是“服务器友好的”?

这应该有效:

function checkInput($str) {
  return "";
}

有关更详细的说明,请see here

答案 3 :(得分:0)

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