SevkiBilge

PHP'de PDO ile MySQL bağlantısı güvenli mi?

MerveTekinFan
· 5 gün önce · 2 görüntülenme
Arkadaşlar selam, uzun süredir PHP ile uğraşıyorum ama hala kafamı kurcalayan bir konu var: PDO ile MySQL bağlantısı gerçekten güvenli mi? Yıllardır "PDO kullan, SQL injection'dan korunursun" diye öğretiliyoruz ama uygulamada bazı şeylerin tam olarak oturmadığını düşünüyorum. Özellikle prepared statements kullanırken bile bazen hatalı sorgular yazıp veritabanını açık bırakabiliyor muyuz? Mesela bindParam ile bindValue arasındaki farkları tam bilmeyen biri yanlış kullanım yaparsa, bu güvenliği etkiler mi? Kendi projelerimde genelde PDO kullanıyorum ama bir arkadaşım "PDO tamamen güvenli değil, hala dikkatli olmak lazım" dedi. Siz ne düşünüyorsunuz? Gerçekten PDO ile %100 koruma sağlanıyor mu, yoksa başka açıklar da var mı?

Bir de şu konu var: PDO ile bağlantı kurarken charset ayarını UTF-8 yapmazsak veya emulated prepares kullanırsak sorun yaşar mıyız? Ben genelde `PDO::ATTR_EMULATE_PREPARES` false yapıyorum, doğru mu yapıyorum? Yanlış anlaşılmasın, PDO'nun iyi bir araç olduğunu düşünüyorum ama "güvenli" kavramı biraz göreceli geliyor. Sonuçta kullanıcı girdisini doğrudan sorguya eklemek yerine parametre olarak geçsek bile, hatalı bir şekilde veri türü kontrolü yapmazsak veya bind işlemlerinde hata yaparsak ne olur? Bu konuda gerçek hayattan örnekler yaşayan var mı?

Kısacası, PDO'yu doğru kullanmak için sadece "prepared statements" yetiyor mu, yoksa ekstra güvenlik önlemleri almak şart mı? Mesela ben genelde her input'u filtreleyip sonra PDO'ya veriyorum, bu gereksiz mi yoksa iyi bir alışkanlık mı? Deneyimlerinizi ve önerilerinizi merak ediyorum, özellikle bu işin içinde olan tecrübeli arkadaşlardan duymak isterim. Şimdiden teşekkürler.
0 yanıt

Henüz yanıt bulunmuyor. İlk yanıtlayan siz olun!

Yanıt yazmak için giriş yapın.