我的代码问题sory。
$ yeri = no filtre;
mysql_query("Insert Into deney (vid,yazan,email,yorum,ip,tarih,durum,yeri) values ('$id', '$yazan', '$email', '$yorum', '$ip', Now(),'1','$yeri')");
如何将攻击网站上的数据更新为此查询? 我该如何做到这一预防措施。如何更新表格中的数据
答案 0 :(得分:2)
改用mysqli或PDO。
在pdo中你的代码看起来像 - 这是 SAFE :
$query = $pdo->prepare("Insert Into
deney (vid,yazan,email,yorum,ip,tarih,durum,yeri)
values (:id, :yazan, :email, :yorum, :ip, Now(), 1, :yeri)");
$query->execute(array(
'id' => $id,
'yazan' => $yazan,
'email' => $email,
'yorum' => $yorum,
'ip' => $ip,
'yeri' => $yeri
));
这样PDO就可以为你进行转义,并且可以安全地防止sql注入。
要通过PDO创建mysql连接,请使用:
$pdo = new PDO("mysql:dbname=$dbname", $username, $password);
我通常也会添加第4个参数,因为我喜欢在utf-8中编写所有代码,第4个参数在我的情况array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
中。
只是为了澄清以下是不安全 - 不要使用:
$pdo->prepare("Insert Into
deney (vid,yazan,email,yorum,ip,tarih,durum,yeri)
values ('$id', '$yazan', '$email', '$yorum', '$ip', Now(), 1, '$yeri')");
如果你坚持使用mysql_query,但是 NOT RECOMMENDED ,你需要这样做
mysql_query("Insert Into deney (vid,yazan,email,yorum,ip,tarih,durum,yeri) values ('"
. mysql_real_escape_string($id) . "', '"
. mysql_real_escape_string($yazan) . "', '"
. mysql_real_escape_string($email) . "', '"
. mysql_real_escape_string($yorum) . "', '"
. mysql_real_escape_string($ip) . "', Now(),'1','"
. mysql_real_escape_string($yeri) . "')");
答案 1 :(得分:0)
如果必须使用旧的mysql扩展名或使用mysql_real_escape_string,则应使用mysqli extension's prepared statements转义所有输入。
请注意,mysql_
函数已弃用,如果可能,您不应该使用它们(并且应该在您的情况下)。