Web Performansı: Hız, SEO, Güvenlik

WordPress REST API ve Harici Sitemap Kaynaklı Kullanıcı İfşasını

WordPress REST API, author sitemaps ve kullanıcıya dair feed verileri SEO’yu bozmadan güvenli şekilde nasıl gizlenir? En iyi eklenti önerileri, functions.php’ye eklenebilecek güvenli kodlar ve adım adım uygulanabilir kontroller ile kullanıcı bilgilerinin ifşası engellenebilir. Bu rehberde, pratik ve risksiz yöntemlerle WordPress sitenizin güvenliğini artırabilirsiniz.

WordPress REST API ve Harici Sitemap Kaynaklı Kullanıcı İfşasını

WordPress REST API Kullanıcı Listesi wp-json ile Gelen Güvenlik Risklerini Anlamak

te REST API kullanıcı listesi wp-json, WordPress sitelerinde sıklıkla göz ardı edilen bir güvenlik riskini gözler önüne serer. REST API’nin sağladığı esneklik, geliştiriciler ve tema yazarları için büyük kolaylıklar sunsa da, aynı zamanda sitenizdeki tüm kullanıcıları veya yazarları kötü niyetli kişiler tarafından kolayca tespit edilebilir hale getirebilir. Özellikle /wp-json/wp/v2/users endpoint’i ve rest_route= parametresi, sitedeki tüm kullanıcı adlarını toplu olarak dışarıya aktarabilir. Bu bilgiler saldırganların brute-force veya sosyal mühendislik saldırılarını başlatmasını kolaylaştırır. Bu tür ifşalar yalnızca güvenlik değil, GDPR gibi veri koruma yönetmeliklerine uyum açısından da sakıncalı sonuçlar doğurabilir.

WordPress’te Author ve Kullanıcı Bilgileri Neden Kolayca İfşa Oluyor?

Varsayılan WordPress kurulumunda REST API, yazar ve kullanıcı endpoint’lerini herkese açık olarak sunar. Ek olarak, bazı popüler SEO eklentileri (ör. Yoast SEO) veya kullanıcı yönetim eklentileri, author sitemap’leri ve kullanıcıya özel sitemaps dosyalarını otomatik olarak oluşturur. Şu yöntemlerle kullanıcı adları kolayca bulunabilir:

  • REST API: /wp-json/wp/v2/users veya ?rest_route=/wp/v2/users gibi URL’ler herkese açıktır.
  • _embed author: API sorgularında _embed=author parametresiyle yazar detayları çekilebilir.
  • Feed’ler: RSS veya Atom feed’lerinde author bilgisi ve kullanıcı adı görünür.
  • Author enumeration: /?author=1 tarzı sorgularla kullanıcı ID’si üzerinden yazarın kullanıcı adı bulunabilir.
  • Author-sitemap ve users sitemap: Yoast SEO gibi eklentiler, arama motoru botları için yazar site haritaları oluşturur. Ancak bu dosyalar saldırganların eline geçtiğinde toplu kullanıcı adlarını ortaya çıkarır.

Kullanıcı İfşasının SEO ve Güvenlik Açısından Sonuçları

Kullanıcı adlarının ifşa olması, hem web sitesinin güvenliğini zedeler hem de arama motorları tarafından indekslenen author arşivleri yoluyla gereksiz sayfa çoğalmasına neden olabilir. Bu da duplicate content (yinelenen içerik) sorunları, site içi otorite dağınıklığı ve kullanıcıların kimlik bilgilerinin tehlikeye girmesi anlamına gelir. Özellikle çok yazarlı sitelerde, yazar arşivlerinin ve sitemaps’lerinin açık olması, sitede aktif olmayan veya yönetici rollerindeki kullanıcıların kolayca tespit edilmesine yol açabilir.

REST API Üzerinden Kullanıcı ve Author Endpoint’lerinin Kapatılması

REST API yoluyla kullanıcı verilerinin ifşasını önlemenin en etkili yolu, API üzerinden /users ve /users/{id} endpoint’lerini devre dışı bırakmaktır. Bunu hem manuel kodlarla hem de eklenti desteğiyle yapabilirsiniz.

Functions.php’ye Eklenebilecek Güvenli Kodlar

  • Kullanıcı endpoint’lerini kaldırmak için:

<?php add_filter('rest_endpoints', function ($endpoints) { if (isset($endpoints['/wp/v2/users'])) { unset($endpoints['/wp/v2/users']); } if (isset($endpoints['/wp/v2/users/(?P[d]+)'])) { unset($endpoints['/wp/v2/users/(?P[d]+)']); } return $endpoints; }); ?>
Bu kod, API yoluyla kullanıcı listesinin ve detaylarının çekilmesini tamamen engeller. Kod aktifken, /wp-json/wp/v2/users sorgusu 404 döner.

  • _embed author bilgilerinin saklanması için:

<?php add_filter('rest_prepare_post', function ($response) { $data = $response->get_data(); if (isset($data['author'])) { unset($data['author']); } $response->set_data($data); return $response; }); ?>
Bu kod sayesinde, API üzerinden gönderiler çekildiğinde author alanı gizlenmiş olur. Sitenizdeki yazıların hangi yazar tarafından paylaşıldığı API yoluyla tespit edilemez.

  • Author enumeration’a karşı yönlendirme:

<?php if (!is_admin()) { if (isset($_GET['author']) && is_numeric($_GET['author'])) { wp_redirect(home_url(), 301); exit; } } ?>
Bu kod, /?author=1 gibi URL’lere gelen talepleri ana sayfaya yönlendirir. Böylece kullanıcı ID’si ile giriş denemeleri engellenir.

  • Feed’de author bilgisini gizlemek için:

<?php add_filter('the_author', function($author) { if (is_feed()) { return ''; } return $author; }); ?>
Bu sayede RSS ve Atom feed’lerinde author adı gözükmez. Özellikle feed çekip kullanıcı adı toplamak isteyen botlara karşı net bir koruma sağlar.

SEO’yu Bozmadan Author ve User Sitemaps’lerini Engellemek

Author ve kullanıcı sitemaps’lerinin kapatılması, arama motoru indekslenebilirliğine zarar vermeden yapılmalıdır. Çünkü yanlış yapılan işlemler, site haritanızın tamamının silinmesine veya önemli sayfaların da indeks dışı kalmasına yol açabilir.

Yoast SEO’da Author Sitemap’i Devre Dışı Bırakmak

  • WordPress yönetim panelinde Yoast SEO → Arama Görünürlüğü → Arşivler sekmesine gidin.
  • Yazar arşivlerini göster seçeneğini Kapalı olarak işaretleyin.
  • Alternatif olarak, aşağıdaki kodu functions.php dosyanıza ekleyebilirsiniz:

<?php add_filter('wpseo_sitemap_exclude_author', '__return_true'); ?>
Bu kod, author-sitemap.xml dosyasının oluşturulmasını tamamen engeller. Özellikle tek yazar olan sitelerde, author arşivlerinin ve sitemaps’inin kapatılması hiçbir SEO kaybı yaratmaz; aksine gereksiz indekslenmiş sayfa yükünden kurtulursunuz.

WP Users Sitemap ve Benzer Eklenti Kaynaklı Kullanıcı Sitemaps’lerinin Kapatılması

  • Kullandığınız SEO eklentisinin ayarlarından author/user sitemap üretimini devre dışı bırakın.
  • Eğer bu ayar bulunmuyorsa veya ekstra güvenlik istiyorsanız, aşağıdaki kodu ekleyin:

<?php add_filter('wp_sitemaps_add_provider', function ($provider, $name) { if ('users' === $name) { return false; } return $provider; }, 10, 2); ?>
Bu kod, WordPress’in kendi sitemaps özelliğiyle otomatik oluşturulan kullanıcı site haritalarını iptal eder.

Kullanıcı İfşasını Engellemek İçin En İyi Eklenti Önerileri

  • Disable REST API (WordPress.org): REST API erişimini yönetir ve kullanıcı endpoint’lerini kapatır. Eklentiyle REST API erişimi sadece yetkili (admin) kullanıcılarla sınırlandırılabilir.
  • WP Hide & Security Enhancer (WordPress.org): REST API, author parametreleri, feed, sitemaps ve daha birçok alan üzerinde detaylı kontrol sağlar. SEO dostu şekilde erişimleri engelleyebilir.

Disable REST API Eklentisi Kullanımı

Disable REST API eklentisi, özellikle yönetici dışındaki tüm kullanıcılara REST API erişimini kapatarak hızlı ve pratik bir çözüm sunar. Kurulum sonrası herhangi bir yapılandırmaya gerek kalmadan, dışarıdan gelen kullanıcı endpoint taleplerini tamamen bloke eder.

WP Hide & Security Enhancer ile Kapsamlı Güvenlik

WP Hide & Security Enhancer, sadece REST API değil, author enumeration, sitemaps, feed yolları ve daha fazlası üzerinde kapsamlı kontrol sağlar. Eklentiyle belirli endpoint’leri, parametreleri ve arşivleri kapatabilir, üstelik bunu SEO açısından zararsız şekilde yapabilirsiniz. Ayrıca, admin panelinden istediğiniz alanları seçerek erişime kapatmak mümkündür.

Diğer Ekstra Güvenlik Adımları ve Sık Yapılan Hatalar

  • API erişimini tamamen engellemek yerine sadece kullanıcı endpoint’lerini kapatmak gerekir. Tüm API’yi engellemek, tema veya eklenti fonksiyonlarında hata veya veri kaybına yol açabilir.
  • SEO eklentilerinde author sitemap kapatıldığında, site haritası dosya yapısının bozulmamasına dikkat edin.
  • _embed author alanını gizlerken, özel REST API endpoint’leriyle çalışan eklentiler varsa test yapın.
  • Functions.php dosyasına kod eklerken önce child tema veya özel snippets eklentisi kullanmanız önerilir.
  • Author enumeration yönlendirmesini yaparken, admin paneline erişimi engellemediğinizden emin olun.

Sıkça Sorulan Kontrol Listesi: Hangi Adımlar Eksiksiz Güvenlik Sağlar?

  • REST API kullanıcı endpoint’ini functions.php ile veya güvenilir bir eklentiyle engellediniz mi?
  • _embed author ve feed author bilgilerinin gizlendiğini test ettiniz mi?
  • /?author=1 gibi author enumeration sorgularının ana sayfaya yönlendiğinden emin oldunuz mu?
  • Yoast veya kullandığınız SEO eklentisinde author/user sitemap’lerini devre dışı bıraktınız mı?
  • Ekstra olarak, Disable REST API veya WP Hide & Security Enhancer eklentilerinden birini aktif ettiniz mi?
  • Eklediğiniz kodların tema veya eklenti fonksiyonlarıyla çakışmadığını kontrol ettiniz mi?
REST API ile kullanıcı ifşası nedir ve neden tehlikelidir?

REST API ile kullanıcı endpoint’lerini açık bırakmak, kötü niyetli kişilerin yazar ve kullanıcı adlarını kolayca tespit etmesine ve brute-force saldırılarını kolaylaştırmasına neden olur.

Yoast SEO author-sitemap XML dosyası nasıl devre dışı bırakılır?

Yoast SEO ayarlarından yazar arşivleri kapatılarak veya ilgili filtre kodu functions.php dosyasına eklenerek author-sitemap.xml devre dışı kalır.

REST API kullanıcı endpoint’ini kapatmak SEO’ya zarar verir mi?

Genellikle hayır; kullanıcı endpoint’i arama motorları tarafından endekslenmez. Yine de, API tabanlı uygulamalar kullanıyorsanız dikkatli olunmalıdır.

Disable REST API eklentisi hangi durumlarda yeterli olur?

Sitenizde özel bir API entegrasyonu yoksa ve sadece kullanıcı endpoint’lerini kapatmak istiyorsanız Disable REST API eklentisi güvenli ve hızlı bir seçenektir.

Author enumeration sorgularına karşı en etkili önlem nedir?

/?author=1 gibi sorgulara 301 yönlendirme kodu eklemek, kullanıcı adlarının tespitini tamamen önler.

Yorum Yap

Yorumlar

  1. İlk yorumu siz yazın.