Ne güvenlik sorunları kullandıktan sonra veritabanı bağlantısını kapatma değil ortaya çıkabilir? Yeni bir sayfa yükler kez kapatmak otomatik olarak PHP değil mi?
mysql_close()
a> belgelerine dediği gibi:
Using mysql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution. See also freeing resources.
Bağlantıları PHP tarafından yönetilen olduğundan bir güvenlik riski olmamalıdır.
PHP supposed "paylaşılan bir şey" mimari olmaktır. Yani, tüm kaynakların her istek için ayrılan ve daha sonra istek bittikten sonra temizlenir. Yani bellek, vs dosya kolları, prizler, veritabanı bağlantıları, gibi kaynaklar ayırmanın ya da kapalı olmalıdır.
Ancak, persistent database connections kapalı değil hangi kullanabilirsiniz, ancak bir sonraki istek için yeniden kullanılır. Bunu yaparsanız, bazı güvenlik ima var. Herhangi bir bağlantı durumu sonraki PHP isteği tarafından miras alınır. Uygulama veritabanı kullanıcı tanımlı değişken veya geçici tablolar, hatta LAST_INSERT_ID()
kullanıyorsa Yani, bir sonraki PHP isteği görmek gerektiğini ayrıcalıklı verileri görmek mümkün olabilir.
Bunu önlemek için veritabanı bağlantısını kapatın, temelde kalıcı bağlantı değerini yenerek ediyoruz. Yani siz de düz veritabanı bağlantıları kullanabilirsiniz.
Ben sayfa bağlantısını (yani onu yönetmek ne olursa olsun bağlı olacağını) kapatır olup olmadığını söyleyemem ama uzun süre açık bırakarak potansiyel bir açlık sorunu neden olur, çünkü genel olarak, o zaman yapılır kapatmak için iyi bir fikirdir aynı veri kaynağına bağlanmak için istediğiniz aynı anda işleme diğer sayfalar için.
Jeff Atwood, ilginç bulabileceğiniz bu çok konuda an interesting blog post yazdı.