Kodunuzu kontrol ben size eklediğiniz değişmezleri alıntı yok zaman hepsi çalışıyor şaşırdım - Senin gibi bir kod üreten olacaktır:
INSERT INTO user (password, username) VALUES (abc1234fg00000, admin);
Yani bir hatayı her zaman verecektir. Bu sadece bir yazım hatası olduğunu varsayarsak ....
Mysql uzantısı sadece çağrı başına bir sorgu vererek enjeksiyon saldırıları gerçekleştirmek için yeteneğinizi sınırlar. Ayrıca, bir INSERT deyimi üzerinde bir enjeksiyon saldırısı için sınırlı bir kapsamı var. Eğer insert deyimi içine yapıştırma önce nötr biçime gösterimini değiştirmek olması böyle bir saldırı için potansiyel bir yol olmadığı anlamına gelir ekleyin. Birisi Mesajları tek tırnak (o zaman sen var yoksa magic_quotes önerilmiyor hangi kılınmış) içeren bir kullanıcı adı Ancak, sizin kod should devrilebilir.
Eğer hesap doğrulama için aynı yöntemi uygulayabilirsiniz OTOH sonra enjeksiyon saldırıları için geniş açık - düşünün
"SELECT 1
FROM users
WHERE username='" . $_POST['username'] . "'
AND password='" . sha1($_POST['username'] . "';";
$ _POST ['Username'] "admin 'OR 1" varsa o sistem tehlikeye girer.
Eğer farklı bir işlevi kullanarak güvenli veri yaptık sürece always mysql_real_escape_string () kullanın (örneğin sha1, bas64_encode .... ama değil addslashes) olmalıdır
C.