Bu başlık diyor mysql_real_escape_string kesmek beklemeden nasıl olması gerektiği çalışma olup olmadığını nasıl anlayabilirim?
Hepsini kaçmak gerekir karakterleri ve kontrolleri bu çıkış gönderen bir birim test oluşturun.
BUT: Why don't you simply use parameterized queries with PDO? Like:
$dbh = new PDO([...]);
$sth = $dbh->prepare("SELECT foo FROM bar WHERE baz=:baz");
$sth->execute(array(":baz" => $mybaz));
Bu Perl gibi yaklaşık olarak kolay PDO için en güvenli yoldur ve sayesinde.
Ne 'R. genişletmeye Bemrose 'sundu, burada sadece bunu yapmak için bazı örnek kod. Kendi ile mysql kimlik bilgilerini değiştirmek emin olun.
<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());
$user = "Ed O'Neil";
$password = "SQL_INJECTION ';'alter table xyz';";
// Query
$query_safe= sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
// Query
$query_not_safe= sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
$user,
$password);
echo $query_safe."\n";
echo $query_not_safe;
?>