Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的代码不受SQL注入的影响吗_Php_Mysql_Sql_Dreamweaver - Fatal编程技术网

Php 我的代码不受SQL注入的影响吗

Php 我的代码不受SQL注入的影响吗,php,mysql,sql,dreamweaver,Php,Mysql,Sql,Dreamweaver,这是我目前的代码 $search=$_GET["Search"]; $search = addcslashes(mysql_real_escape_string($search), '%_'); 此代码由DREAMWEAVER CS4从此处生成 if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNo

这是我目前的代码

$search=$_GET["Search"];
$search = addcslashes(mysql_real_escape_string($search), '%_');
此代码由DREAMWEAVER CS4从此处生成

if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_Echos, $Echos);
更多Dremweaver代码

 $Recordset1 = mysql_query($query_Recordset1, $Echos) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
在此之后,数据以表格格式显示

我对这一切还是个新手,最近几天我发现你可以在我的搜索词中添加一些信息,然后破坏8个月的数据库工作。这并不是说数据库没有备份,但我宁愿安全,也不愿道歉

我读到一份事先准备好的声明是阻止这种情况的最好办法

但正如我所说,我对这一点还不熟悉,对这一点了解甚少

我的代码非常简单,DW创建的代码非常安全

是否有一些事情需要改变以使其更简单

如果它不够安全,我如何使它更安全

我在这里用备好的木桩吗?如果有的话,有人能在这里解释一下如何使用它吗


如果您能提供任何帮助,我们将不胜感激。

您的代码有很多不好的做法,但它并不像我习惯看到的PHP代码那样完全不安全或完全不好

简单地说,您不想使用PHP的
mysql\uuz
函数。你应该做的是使用

mysql\u real\u escape\u string
是安全的,但不是100%。有关更好的解释,请参阅解释的链接


因此,您要做的是使用PDO创建准备好的语句,然后绑定输入值。PDO会根据所使用的字符集和数据库来清理它们,这使它100%安全,而且不必担心是否遗漏了某些内容。

您的代码有很多不好的做法,但它并不像我习惯看到的普通PHP代码那样完全不安全或完全不好

简单地说,您不想使用PHP的
mysql\uuz
函数。你应该做的是使用

mysql\u real\u escape\u string
是安全的,但不是100%。有关更好的解释,请参阅解释的链接


因此,您要做的是使用PDO创建准备好的语句,然后绑定输入值。PDO会根据所使用的字符集和数据库来清理这些字符,这使它100%安全,而不必担心是否遗漏了某些内容。

因此,简单来说,一个准备好的语句会查看数据库中的所有字符,然后只允许这些字符。准备好的语句是发送到数据库的查询,它的解析和“预编译”方式使您只向db服务器发送参数,并且它知道如何在查询中使用这些参数——因此,它是一次解析,多次使用不同的值。因此,PDO将要做的是检查正在使用的db驱动程序(MySQL、PostgreSQL、MSSQL等)和字符集(UTF8或其他),它将知道如何根据获得的信息处理某些特殊字符。因此,它将正确地清除这些特殊字符,并且它们将“安全”地使用。有了PDO,我必须安装一些东西才能使代码正常工作,或者它已经完成了wamp,我可以只更改我的代码如果你有PHP5.1或更大版本,你有
PDO
。好的,我有5.3.8。因此,我是否必须更改所有代码,或者必须更改多少代码?简单来说,一个准备好的语句查看数据库中的所有字符,然后只允许这些字符。准备好的语句是发送到数据库的查询,它会被解析并“预编译”通过这种方式,您只向db服务器发送参数,而它知道如何在查询中使用它们——因此,它只需解析一次,就可以多次使用不同的值。因此,PDO将要做的是检查正在使用的db驱动程序(MySQL、PostgreSQL、MSSQL等)和字符集(UTF8或其他),它将知道如何根据获得的信息处理某些特殊字符。因此,它将正确地清除这些特殊字符,并且它们将“安全”地使用。有了PDO,我必须安装一些东西才能使代码正常工作,或者它已经完成了wamp,我可以只更改我的代码如果你有PHP5.1或更大版本,你有
PDO
。好的,我有5.3.8。那么,我是否必须更改所有代码,或者必须更改多少代码
 $Recordset1 = mysql_query($query_Recordset1, $Echos) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);