Özellikle kurumsal Drupal projelerinde aşağıdaki kontrollerin düzenli olarak yapılması önemlidir.
- Drupal Core ve modülleri güncel tutun. Security Advisory duyurularını takip edin ve güvenlik güncellemelerini önce test ortamında, ardından production'da uygulayın.
- Composer bağımlılıklarını kontrol edin. Drupal dışındaki PHP paketleri de güvenlik açığı içerebilir. CI/CD sürecinde
composer audit çalıştırmak bu riskleri erkenden görmenizi sağlar. - Kullanılmayan modül ve temaları kaldırın. Aktif kullanılmayan kodların production ortamında tutulması gereksiz saldırı yüzeyi oluşturur.
- Yetkileri minimum seviyede tutun. Editör, yönetici ve diğer roller yalnızca görevlerini yapabilmek için ihtiyaç duydukları permission'lara sahip olmalıdır.
- UID 1 hesabını günlük yönetimde kullanmayın. İlk Drupal kullanıcısı çok geniş yetkilere sahiptir. Günlük işler için rol tabanlı ayrı administrator hesapları kullanın.
- MFA veya SSO kullanın. Özellikle yönetici hesaplarında yalnızca parola ile giriş yeterli değildir. Kurumsal yapılarda Microsoft Entra ID, Okta veya Keycloak gibi SSO çözümleri değerlendirilebilir.
- Login ve session güvenliğini kontrol edin. Başarısız giriş denemeleri, eski kullanıcı hesapları ve uzun süre açık kalan oturumlar düzenli olarak takip edilmelidir.
trusted_host_patterns yapılandırmasını yapın. Drupal'ın yalnızca tanımlanan domain'lerden gelen Host header'larını kabul etmesi sağlanmalıdır.- HTTP Security Header'larını kontrol edin. HTTPS'in yanında Content-Security-Policy, HSTS, X-Content-Type-Options ve Referrer-Policy gibi header'lar da kullanılmalıdır.
- Dosya izinlarını doğru yapılandırın. Web server'ın Drupal core, module veya theme dosyalarını değiştirebilmesi engellenmeli; yazma yetkisi yalnızca gerekli dizinlere verilmelidir.
- Public ve private dosya alanlarını doğru kullanın. Erişim kontrolü gerektiren belgeler doğrudan public file alanında tutulmamalıdır.
- API key ve şifreleri kod içine yazmayın. SMTP, CRM, ödeme, AI veya diğer servislerin secret bilgileri Git repository'sinde veya export edilen config dosyalarında bulunmamalıdır.
- Backup kadar restore sürecini de test edin. Düzenli yedek almak yeterli değildir. Database ve dosyaların gerçekten geri yüklenebildiği belirli aralıklarla test edilmelidir.
- WAF ve rate limiting kullanın. Login, form, API ve upload endpoint'leri bot ve kötü niyetli trafiğe karşı CDN/WAF seviyesinde de korunabilir.
- Logları düzenli takip edin. Başarısız login artışları, administrator değişiklikleri, PHP hataları ve olağandışı trafik merkezi bir log sistemi üzerinden izlenmelidir.
Güvenlik Tek Seferlik Bir Kontrol Değildir
Drupal güvenliği yalnızca bir modül kurmak veya core'u güncellemekten ibaret değildir. Application, kullanıcı yetkileri, dependency'ler, sunucu, ağ ve operasyon süreçlerinin birlikte ele alınması gerekir.
Bu nedenle güvenlik kontrolünün yalnızca proje yayına alınırken değil, belirli aralıklarla tekrarlanması önemlidir. Küçük görünen bir permission hatası, eski bir dependency veya çalışmayan backup süreci zaman içinde ciddi bir güvenlik problemine dönüşebilir.
Düzenli güncelleme, dependency kontrolü, permission incelemesi, log takibi ve restore testleri kurumsal Drupal projelerinde temel güvenlik rutininin bir parçası olmalıdır.