PHP注入保护功能



你好,我正在互联网上搜索免受攻击的保护我收集了一些代码,但我不确定他们是否在做同样的工作或者它们是否无用。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;
}

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

相关内容

  • 没有找到相关文章

最新更新