Giriş ve Güvensiz Kodların Tehlikeleri
Bir kıdemli geliştirici olarak projeleri incelerken hâlâ eski PHP sürümlerine ait veya güvenlik açıkleriyle dolu kod bloklarına sıkça rastlıyorum. Web uygulamalarımızın siber saldırılara karşı dirençli olması için modern kodlama standartlarını benimsemek şarttır. Özellikle veri tabanı bağlantıları ve kullanıcı girdilerinin işlenmesi, en sık hata yapılan alanların başında gelir.
Veri Tabanı İşlemlerinde PDO ve Güvenli Sorgular
Geçmişte sıklıkla kullanılan mysql_query fonksiyonları veya düzensiz mysqli kullanımları SQL enjeksiyonu açıklarına kapı aralar. Artık modern standartlar gereği veri tabanı işlemlerinde kesinlikle PDO (PHP Data Objects)[B] tercih edilmeli ve Prepared Statements (Hazırlıklı İfadeler) kullanılmalıdır.
Uygulamalara dışarıdan gelen verilerin filtrelenmesi kadar, ekrana basılırken güvenli şekilde escape edilmesi de hayati önem taşır. Cross-Site Scripting (XSS) saldırılarını engellemek için htmlspecialchars fonksiyonu doğru parametrelerle kullanılmalıdır.
Bir kıdemli geliştirici olarak projeleri incelerken hâlâ eski PHP sürümlerine ait veya güvenlik açıkleriyle dolu kod bloklarına sıkça rastlıyorum. Web uygulamalarımızın siber saldırılara karşı dirençli olması için modern kodlama standartlarını benimsemek şarttır. Özellikle veri tabanı bağlantıları ve kullanıcı girdilerinin işlenmesi, en sık hata yapılan alanların başında gelir.
Veri Tabanı İşlemlerinde PDO ve Güvenli Sorgular
Geçmişte sıklıkla kullanılan mysql_query fonksiyonları veya düzensiz mysqli kullanımları SQL enjeksiyonu açıklarına kapı aralar. Artık modern standartlar gereği veri tabanı işlemlerinde kesinlikle PDO (PHP Data Objects)[B] tercih edilmeli ve Prepared Statements (Hazırlıklı İfadeler) kullanılmalıdır.
- Kullanıcıdan gelen verileri asla doğrudan sorgu içine yazmayın.
- Dinamik parametreler için bindValue veya execute dizilerini kullanın.
- Hata ayıklama aşamasında hassas veri tabanı bilgilerini ekrana basmaktan kaçının.
Uygulamalara dışarıdan gelen verilerin filtrelenmesi kadar, ekrana basılırken güvenli şekilde escape edilmesi de hayati önem taşır. Cross-Site Scripting (XSS) saldırılarını engellemek için htmlspecialchars fonksiyonu doğru parametrelerle kullanılmalıdır.
- ENT_QUOTES ve UTF-8 karakter setini her zaman belirtin.
- Kullanıcı girdilerini veritabanına kaydederken değil, ekrana yazdırırken filtreleyin.
- Oturum yönetiminde HttpOnly ve Secure çerez bayraklarını aktif edin.