PHP注入保护功能


PHP Injection protect function

你好,我正在互联网上搜索免受攻击的保护我收集了一些代码,但我不确定他们是否在做同样的工作或者它们是否无用。1-2提示也欢迎我是php的新手。以下是我用于sql的每一个输入/输出的函数:

public static function safe($str = '')
{
    $ret_string = $str;
    $ret_string = htmlspecialchars($ret_string);
    $ret_string = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($ret_string) : mysql_escape_string($ret_string);
    $ret_string = strip_tags($ret_string);
    $ret_string = stripslashes($ret_string);
    $ret_string = htmlspecialchars($ret_string);
    $ret_string = trim(htmlentities($ret_string));
    $ret_string = trim($ret_string);
    $ret_string = str_replace('''l', '', $ret_string);
    $ret_string = str_replace('''', '', $ret_string);
    $ret_string = str_replace("%00", "",$ret_string);
    $ret_string = str_replace(' ', '', $ret_string);
    $ret_string = str_replace("'", "", $ret_string);
    $ret_string = str_replace("'"", "",$ret_string);
    $ret_string = str_replace("--", "",$ret_string);
    $ret_string = str_replace("-", "",$ret_string);
    $ret_string = str_replace("^", "",$ret_string);
    $ret_string = str_replace("&", "",$ret_string);
    $ret_string = str_replace("%", "",$ret_string);
    $ret_string = str_replace("(", "",$ret_string);
    $ret_string = str_replace(")", "",$ret_string);
    $ret_string = str_replace("=", "",$ret_string);
    $ret_string = str_replace("+", "",$ret_string);
    $ret_string = str_replace(";", "",$ret_string);
    $ret_string = str_replace(":", "",$ret_string);
    $ret_string = str_replace("|", "",$ret_string);
    $ret_string = str_replace("<", "",$ret_string);
    $ret_string = str_replace(">", "",$ret_string);
    $ret_string = str_replace("~", "",$ret_string);
    $ret_string = str_replace("`", "",$ret_string);
    //Extra ANSI attacks
    $ret_string = str_replace("0x22", "",$ret_string);
    $ret_string = str_replace("0x25", "",$ret_string);
    $ret_string = str_replace("0x27", "",$ret_string);
    $ret_string = str_replace("0x5c", "",$ret_string);
    $ret_string = str_replace("0x5f", "",$ret_string);
    //Extra hex attacks
    $ret_string = str_replace("'x00", "",$ret_string);
    $ret_string = str_replace("'n", "",$ret_string);
    $ret_string = str_replace("'r", "",$ret_string);
    $ret_string = str_replace("'x1a", "",$ret_string);
    $ret_string = str_replace("%20and%20", "",$ret_string);
    return $ret_string;
}

您不需要这样做。使用带参数的已准备好的语句,这样就不需要转义任何内容。