Bir web sitesinin tasarımı tamamlandığında güvenlik çalışmaları bitmiş sayılmaz. Yayın öncesi denetim; uygulama kodunu, sunucu yapılandırmasını, hesap izinlerini, yedekleri ve olay müdahalesini birlikte ele almalıdır. Aşağıdaki 15 maddelik kontrol listesi özellikle PHP ve MySQL kullanan siteler için hazırlanmıştır; ancak temel ilkeler başka teknolojiler için de geçerlidir.
1. HTTPS ve aktarım güvenliğini doğrulayın
Tüm sayfaların HTTPS üzerinden açıldığını, HTTP isteklerinin güvenli adrese yönlendirildiğini ve geçerli bir TLS sertifikası bulunduğunu kontrol edin. Yalnızca giriş ekranını değil, form verisi işleyen bütün sayfaları kapsayın. Karışık içerik uyarılarını ve üçüncü taraf kaynakları ayrıca inceleyin.
2. Yazılımları ve bağımlılıkları güncel tutun
PHP sürümünü, kullanılan eklentileri ve JavaScript bağımlılıklarını destek durumuna göre değerlendirin. Bakımı yapılmayan paketleri tespit edin. Güncellemeleri önce test ortamında sınayıp sürüm notlarına göre yayına geçirin.
3. Yönetim paneli erişimini sınırlandırın
Yönetici hesaplarında güçlü parola ve çok faktörlü kimlik doğrulama kullanın. Yalnızca panelin adresini gizlemek koruma sağlamaz; sunucu tarafında kimlik doğrulama, yetkilendirme, oturum süresi ve giriş sınırlaması gerekir.
4. Rol ve yetkileri merkezi olarak uygulayın
Bir editörün yapabildikleriyle yönetici yetkilerini ayırın. Kullanıcıdan gelen kimlikleri veya rol değerlerini güvenilir kabul etmeyin. Her hassas API ve form işleminde yetkiyi sunucuda yeniden doğrulayın.
5. Veritabanı sorgularını parametreli kurun
SQLi riskine karşı PDO hazırlanmış sorgular veya eşdeğer güvenli veri erişim yöntemleri kullanın. Dinamik sütun seçimlerinde izin listeleri oluşturun. Veritabanı bağlantı hesabından gereksiz yönetim ayrıcalıklarını kaldırın.
6. Formlara CSRF koruması ekleyin
Profil güncelleme, parola değiştirme ve içerik yayımlama gibi durum değiştiren istekleri CSRF tokenıyla doğrulayın. Çerezlerde SameSite kullanın; fakat bunu tek başına CSRF çözümü olarak değerlendirmeyin.
7. Çıkış verisini bağlama göre kodlayın
Veritabanından gelen içerikler bile tarayıcıda güvenli gösterilmelidir. HTML metni, HTML özniteliği, URL ve JavaScript bağlamları farklı kaçış kurallarına sahiptir. HTML editöründen gelen içerik için izin listesine dayalı temizleme kullanın.
8. Güvenli oturum çerezleri kullanın
Oturum çerezlerini uygun koşullarda Secure, HttpOnly ve SameSite özellikleriyle ayarlayın. Girişten sonra oturum kimliğini yenileyin; çıkış ve parola sıfırlamada eski oturumları geçersiz kılın.
9. Dosya yüklemelerini sınırlandırın
Dosya uzantısına ek olarak gerçek dosya türünü, boyutu ve içerik kurallarını doğrulayın. Yüklenen dosyaları çalıştırılabilir PHP olarak sunmayın. Gerektiğinde yeniden kodlayın ve web kökü dışında depolayın.
10. Hassas klasörlere erişimi kapatın
.env yapılandırmaları, yedekler, SQL dışa aktarımları, sunucu günlükleri ve geliştirme araçları herkese açık dizinde bulunmamalıdır. Web sunucusunun doğrudan dosya erişimi ile PHP yönlendirme kurallarını ayrı ayrı kontrol edin.
11. HTTP güvenlik başlıklarını değerlendirin
İçerik Güvenliği Politikası (CSP), X-Content-Type-Options ve uygun çerçeveleme kurallarını kullanın. CSP'yi önce raporlama modunda test edip kullanılan script kaynaklarını doğrulayın; körü körüne sıkılaştırılan kurallar işlevleri bozabilir.
12. Güvenli ve düzenli yedekleme yapın
Veritabanı ve dosya yedeklerini şifreleyin, farklı ortamda saklayın ve geri yükleme testlerini düzenli uygulayın. Yedek oluşturulmuş olması, kurtarma sürecinin çalışacağı anlamına gelmez.
13. Güvenlik loglarını kişisel veriyi gözeterek tutun
Başarısız girişler, yönetim değişiklikleri, yetki hataları ve olağandışı trafik için olay kayıtları oluşturun. Şifreler, oturum tokenları ve API anahtarları asla loglanmamalıdır. IP adresi gibi kişisel veri niteliği taşıyabilecek alanlarda amaç, saklama süresi ve erişim yetkilerini belirleyin.
14. Hata ekranlarını ve hız sınırlamalarını test edin
Hatalı isteklere ayrıntılı sistem izleri yerine anlaşılır yanıtlar dönün. Giriş, parola sıfırlama ve pahalı analiz işlemlerinde sunucu tarafı hız sınırlaması uygulayın. Çok sayıda eşzamanlı istekte sistemin kararlı kaldığını doğrulayın.
15. Olay müdahale ve geri dönüş planı hazırlayın
Şüpheli etkinlik görüldüğünde kimin bilgilendirileceği, hangi logların korunacağı ve sitenin nasıl güvenli moda alınacağı önceden tanımlanmalıdır. Yayın paketinin önceki çalışan sürümüne geri dönebilmek, güncelleme sırasında önemli bir emniyet ağıdır.
Yayın öncesi kabul kriterleri
- Tüm önemli formlar ve rol yetkileri test ortamında doğrulandı.
- Çalışır yedek ve belgelenmiş geri yükleme adımları mevcut.
- Sunucu sırları, yönetim URL'leri ve yüklenen dosyalar için erişim kontrolleri sınandı.
- Temel loglama, izleme ve olay müdahale sorumlulukları tanımlandı.
- Mobil görünüm, sayfa yükü ve erişilebilirlik kontrolleri gözden geçirildi.
Bu liste mutlak güvenlik garantisi değildir; sitenin risk profiline göre ek kontroller gerekebilir. Hesap güvenliğinin ilkelerini pekiştirmek için parola yöneticisi rehberini ve SQL Injection'dan korunma rehberini inceleyin.


