Eklentiler WordPress’i güçlü kılan en önemli parçadır; aynı zamanda sitenin güvenliğini ve hızını en çok etkileyen parçadır. WordPress eklenti güvenliği ve performansı, eklentinin nasıl geliştirildiğine ve sitede nasıl yönetildiğine bağlıdır. Bu yazıda hem geliştirici hem de site sahibi açısından uyulması gereken kuralları anlatıyoruz.
Eklenti güvenliği neden bu kadar önemli?
Güvenlik araştırmalarında WordPress sitelerinde bildirilen açıkların büyük bölümünün WordPress çekirdeğinden değil, eklenti ve temalardan kaynaklandığı görülür. Her eklenti siteye yeni kod ve yeni bir saldırı yüzeyi ekler. Bu yüzden eklentinin güvenli yazılması ve güncel tutulması, sitenin tamamının güvenliğini belirler.
Geliştirici tarafında güvenlik kuralları
WordPress, güvenli eklenti geliştirmek için gereken araçları kendi içinde sunar. WordPress güvenlik rehberinde ayrıntıları bulunan temel kurallar şunlardır:
- Yetki kontrolü: Her işlemden önce
current_user_can()ile kullanıcının yetkisini doğrulayın. - Nonce doğrulaması: Form ve AJAX isteklerinde nonce kullanarak isteğin gerçekten sitenizden geldiğini kontrol edin.
- Girdi temizleme: Dışarıdan gelen her veriyi
sanitize_text_field()gibi fonksiyonlarla temizleyin. - Çıktı kaçışlama: Ekrana basılan her veriyi
esc_html(),esc_attr()veesc_url()ile kaçışlayın. - Güvenli sorgular: Veritabanı sorgularını
$wpdb->prepare()ile hazırlanmış ifadelerle çalıştırın. - Dosya yükleme kontrolü: Yüklenen dosyaların türünü ve boyutunu doğrulayın, WordPress’in yükleme fonksiyonlarını kullanın.
- REST API izinleri: Her REST uç noktasında
permission_callbacktanımlayın. - Doğrudan erişim engeli: Eklenti dosyalarının başında
ABSPATHkontrolü yapın. - Gizli bilgilerin saklanması: API anahtarlarını kod içine yazmayın, ayarlarda ya da sunucu ortam değişkenlerinde güvenle saklayın.
Örnek: güvenli bir ayar kaydetme işlemi
Aşağıdaki örnek; yetki kontrolü, nonce doğrulaması, girdi temizleme ve çıktı kaçışlamanın birlikte nasıl kullanıldığını gösterir:
add_action( 'admin_post_adbear_save_settings', function () {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( 'Bu işlem için yetkiniz yok.' );
}
check_admin_referer( 'adbear_save_settings' );
$title = sanitize_text_field( wp_unslash( $_POST['title'] ?? '' ) );
update_option( 'adbear_title', $title, false );
wp_safe_redirect( admin_url( 'options-general.php?page=adbear' ) );
exit;
} );
// Ekrana basarken:
echo esc_html( get_option( 'adbear_title', '' ) );
Site sahibi tarafında alınacak önlemler
- WordPress çekirdeğini, eklentileri ve temayı düzenli olarak güncelleyin.
- Yalnızca ihtiyaç duyduğunuz eklentileri kullanın; kullanılmayanları devre dışı bırakmakla kalmayıp silin.
- Kullanıcılara yalnızca ihtiyaç duydukları yetkileri verin, yönetici hesaplarını sınırlı tutun.
- Düzenli ve siteden bağımsız bir konumda saklanan yedekler alın.
- Bir web uygulama güvenlik duvarı (WAF) ile kötü niyetli istekleri filtreleyin.
Site genelindeki güvenlik ayarları için WordPress güvenlik sıkılaştırma yazımıza göz atabilirsiniz.
Eklenti performansını etkileyen etkenler
- Koşullu dosya yükleme: CSS ve JavaScript dosyalarını yalnızca kullanıldıkları sayfalarda yükleyin.
- Verimli sorgular: Gereksiz sorgulardan kaçının, sık sorgulanan özel tablolar için uygun indeksler tanımlayın.
- Otomatik yüklenen ayarlar: Büyük ayarları
autoloadkapalı olarak kaydedin; her sayfada belleğe yüklenmesinler. - Önbellek: Tekrar eden ağır hesaplamaları transient’ler veya nesne önbelleğiyle saklayın.
- Arka plan işleri: Toplu aktarım gibi uzun işlemleri WP-Cron veya Action Scheduler ile arka plana taşıyın.
- Harici API çağrıları: Dış servislerden gelen yanıtları önbelleğe alın, zaman aşımı süresi tanımlayın ve sayfa yüklemesini dış servise bağlı bırakmayın.
Performansı nasıl ölçersiniz?
- Query Monitor ile sayfa başına çalışan sorguları, kancaları ve yavaş işlemleri tespit edin.
- PageSpeed Insights ile Core Web Vitals değerlerini eklenti etkinken ve devre dışıyken karşılaştırın.
- Değişiklikleri önce bir test (staging) ortamında deneyin, canlı siteyi riske atmayın.
Eklenti güvenliği ve performansı kontrol listesi
- Tüm işlemlerde yetki ve nonce kontrolü var mı?
- Girdiler temizleniyor, çıktılar kaçışlanıyor mu?
- Veritabanı sorguları hazırlanmış ifadelerle mi çalışıyor?
- REST uç noktalarında izin kontrolü tanımlı mı?
- Dosyalar yalnızca gerekli sayfalarda mı yükleniyor?
- Ağır işlemler önbelleğe alınıyor veya arka plana taşınıyor mu?
- Eklenti güncel WordPress ve PHP sürümlerinde test edildi mi?
Uygulamadan bir örnek: PixelCraft with WebP
WordPress.org’da yayımladığımız PixelCraft with WebP eklentisi, görselleri WebP biçimine dönüştürerek sayfaları hızlandırır. Eklenti WordPress.org’un güvenlik ve kod incelemesinden geçerek yayımlanmıştır ve 500’ün üzerinde aktif kurulumda kullanılmaktadır. Bu yazıda anlattığımız kuralları kendi eklentilerimizde de uyguluyoruz. Eklenti geliştirme sürecinin tamamını WordPress eklenti geliştirme nedir yazımızda anlattık.
Sık sorulan sorular
WordPress eklentileri güvenli midir?
Güvenlik eklentinin nasıl geliştirildiğine ve güncel tutulup tutulmadığına bağlıdır. Yetki kontrolü, nonce, veri temizleme ve güvenli sorgu kurallarına uyan, düzenli güncellenen eklentiler güvenle kullanılır.
Eklenti sayısı siteyi yavaşlatır mı?
Belirleyici olan sayıdan çok eklentilerin nasıl yazıldığıdır. Yine de her eklenti yeni kod ekler; kullanılmayan eklentileri silmek hem hızı hem de güvenliği olumlu etkiler.
Bir eklentinin siteyi yavaşlattığını nasıl anlarım?
Query Monitor ile sayfa başına sorguları ve yavaş işlemleri inceleyebilir, PageSpeed Insights sonuçlarını eklenti etkinken ve devre dışıyken karşılaştırabilirsiniz. Bu testleri bir test ortamında yapmak en güvenli yoldur.
Güncellenmeyen bir eklentiyi kullanmaya devam etmeli miyim?
Uzun süredir güncellenmeyen eklentiler yeni WordPress sürümleriyle uyumsuzluk ve güvenlik riski taşır. Aktif geliştirilen bir alternatife geçmek ya da işlevi özel bir eklentiyle karşılamak daha güvenlidir.
Sonuç
WordPress eklenti güvenliği ve performansı, doğru yazılmış kod ile bilinçli site yönetiminin birlikte sonucudur. Geliştirme aşamasında güvenlik kurallarına uymak, yayından sonra eklentileri güncel tutmak ve performansı düzenli ölçmek sitenizi hem hızlı hem de güvenli tutar. Güvenli ve performanslı bir eklenti ihtiyacınız varsa WordPress geliştirme çözümleri sayfamızdan bize ulaşabilirsiniz.



