PDO'de hazırlanmış tablolar gerçekten güvenliğini artırmak mı?

2 Cevap php

Ben PDO bu hazırlanan tabloları gerçekten güvenliğini artırmak merak, ya da sadece eğer bir "ucuz" sorguda metin değiştirin. Hazırlanan tabloların nokta aslında, parametre olarak yerleştirilir ne olursa olsun, böylece bir parametre gibi, talimatlar kendisinin bir parçası olarak DBMS tarafından çözümlenen olmayacak

"'; DROP TABLE foobar;"

bir etkisi vardır ve sorgu kesilmez. Herkes ayrıntılı olarak biliyor mu? Ben SQL enjeksiyon önlenmesi için hazırlanan tablolar ile PDO kullanmak düşündüm. Onların kullanımı zor (ve hatta en azından benim yerel makinede, işe yaramazsa) çıkıyor, bu yüzden ben ;-) PDO ile daha fazla vakit önce bu öğrenmek istiyorum

2 Cevap

Hazırlanmış bir açıklama oluşturma ayrıştırma için sunucuya sorgu ile-joker gönderir, ve bu ifadeyi aramak için bir belirteci döndürür.

Bir çağrı sadece her parametreye bağlı veri gönderme içerir. Bu orada (bir sorgu dizesi bir parçası değil çünkü) hiçbir veri ayrıştırma olacak ve sorgu yapısı hazırlanan beyanı çözümlenir zaman sabittir ve enjeksiyon yoluyla değiştirilemez olduğu anlamına gelir.

Yani, evet, bir hazır deyim kesinlikle güvenliğini arttırır.

Ayrıca size birkaç istekleri için hazırlanmış bir deyimi yeniden eğer ayrıştırma yükü ödemek zorunda kalmazsınız.

Evet, güvenliği artırmak. Veri bir daha kompakt şeklinde geçer çünkü PDO veya MySQLi da PHP düzenli MYSQL yöntemlerle karşı hızını artırır.