- Konu sahibi
- #1
WordPress REST API tamamen kapatılırsa, WordPress verilerine HTTP üzerinden erişen işlevler çalışmaz veya kısıtlanır. En belirgin etkiler blok düzenleyici, REST API kullanan eklenti ve temalar, harici uygulamalar, mobil istemciler ve başsız WordPress kurulumlarında görülür. Buna karşılık, yalnızca REST API kullanan bir özellik etkilenir; klasik sayfa görüntüleme, yazıların normal ziyaretçiye gösterilmesi ve yönetimin API kullanmayan bölümleri genellikle çalışmaya devam eder.
REST API, WordPress içeriğini ve bazı yönetim işlemlerini JSON biçiminde sunan arayüzdür. Blok düzenleyici, tarayıcıdan sunucuya yazı içeriği, blok ayarları ve medya bilgileri gönderirken bu arayüzü kullanabilir. Bir dış uygulama da WordPress yazılarını okumak veya yetkili bir işlem yapmak için REST API'ye istek gönderebilir.
Kısıtlama birkaç farklı kapsamda uygulanabilir:
Bu nedenle “REST API kapalı” ifadesi tek başına yeterli değildir. Hangi isteklerin, hangi kullanıcılar için ve hangi yanıt koduyla engellendiği kontrol edilmelidir.
Blok düzenleyicide yazı açılırken içerik yüklenemiyor, kaydetme başarısız oluyor veya medya seçici çalışmıyorsa REST API engeli olası nedenlerden biridir. Blok tabanlı bileşenlerin ve bazı yönetim ekranlarının çalışması da kullandıkları API uç noktalarına bağlıdır.
Aşağıdaki ayrım, kapatma kararını verirken daha doğru bir çerçeve sağlar:
Örneğin bir WordPress sitesinde klasik tema, klasik düzenleyici ve API kullanmayan bir iletişim eklentisi varsa ziyaretçiler sayfaları görmeye devam edebilir. Ancak aynı sitede blok düzenleyiciyle yazı düzenlenirken kaydetme isteği engelleniyorsa yönetici içerik güncelleyemez. Sorun, sitenin tamamen açılmamasından çok belirli işlevlerin hata vermesi şeklinde ortaya çıkar.
Komutun başarısız olması tek başına API'nin kapalı olduğunu kanıtlamaz. Güvenlik duvarı, sunucu kuralı, yanlış site adresi, önbellek veya yetki eksikliği de aynı isteği etkileyebilir. Yanıt kodu ve sunucu günlükleri birlikte incelenmelidir.
REST API'yi kapatmak XML-RPC'yi kapatmakla aynı işlem değildir. Bir güvenlik eklentisi iki arayüzü birlikte kısıtlayabilir, fakat birinin engellenmesi diğerinin de otomatik olarak kapandığı anlamına gelmez.
wp-json ana dizinine tek curl isteği tüm uç noktaların açık/kapalı olduğunu kanıtlamaz. Pretty permalink kapalı kurulumda ?rest_route=/ kullanılabilir; WAF yalnız bir yol biçimini kısıtlıyorsa diğerini de değerlendirin. Yetkili editör isteklerinde cookie+REST nonce veya dış entegrasyonda desteklenen Application Password kimlik doğrulaması gerektiğini ayırın. Anonim okuma bazı uç noktaların tasarlanan işidir; kişisel veri veya yönetim eyleminde permission_callback ve yetki kontrollerini düzeltmek blanket kapatmadan daha belirleyicidir.
Tema ve eklentiler sayfa oluştururken REST API kullanmıyorsa ziyaretçiler normal sayfaları görebilir. Ancak API'den veri çeken dinamik bölümler çalışmayabilir.
Tek başına kapsamlı bir güvenlik çözümü değildir. Kullanılmayan erişimi azaltabilir; fakat yönetici hesapları, eklentiler, sunucu yapılandırması ve diğer WordPress arayüzleri ayrıca korunmalıdır.
Önce hangi isteğin başarısız olduğunu ve yanıt kodunu belirleyin. Engelin gerçekten REST API kuralından kaynaklandığı doğrulanırsa, gerekli uç noktayı veya yetkili erişimi istisna yapmak tüm API'yi kontrolsüz biçimde açmaktan daha uygun olabilir.
REST API ne işe yarar?
REST API, WordPress içeriğini ve bazı yönetim işlemlerini JSON biçiminde sunan arayüzdür. Blok düzenleyici, tarayıcıdan sunucuya yazı içeriği, blok ayarları ve medya bilgileri gönderirken bu arayüzü kullanabilir. Bir dış uygulama da WordPress yazılarını okumak veya yetkili bir işlem yapmak için REST API'ye istek gönderebilir.
Kısıtlama birkaç farklı kapsamda uygulanabilir:
- Tüm REST API isteklerini engellemek: Hem herkese açık hem de giriş gerektiren uç noktalar etkilenebilir.
- Yalnızca kimlik doğrulaması olmayan istekleri engellemek: Ziyaretçilere açık veri kısıtlanır, ancak yetkili uygulamalar ve yönetim işlevleri çalışmaya devam edebilir.
- Belirli uç noktaları engellemek: Örneğin yalnızca özel bir eklentinin kullandığı veri yolu kapatılır; genel WordPress işlevleri daha az etkilenir.
Bu nedenle “REST API kapalı” ifadesi tek başına yeterli değildir. Hangi isteklerin, hangi kullanıcılar için ve hangi yanıt koduyla engellendiği kontrol edilmelidir.
Hangi işlevler etkilenir?
Blok düzenleyicide yazı açılırken içerik yüklenemiyor, kaydetme başarısız oluyor veya medya seçici çalışmıyorsa REST API engeli olası nedenlerden biridir. Blok tabanlı bileşenlerin ve bazı yönetim ekranlarının çalışması da kullandıkları API uç noktalarına bağlıdır.
Aşağıdaki ayrım, kapatma kararını verirken daha doğru bir çerçeve sağlar:
| İşlev | Tam kapatmanın olası etkisi | Kontrol edilmesi gereken nokta |
|---|---|---|
| Blok düzenleyici | İçerik yükleme veya kaydetme başarısız olabilir | Tarayıcı ağ istekleri ve sunucu yanıtı |
| REST kullanan eklenti veya tema | Arama, filtreleme, önizleme ya da dinamik içerik bozulabilir | Eklentinin kullandığı uç nokta |
| Mobil uygulama ve dış servis | İçerik okuma, gönderme veya senkronizasyon durabilir | Kimlik doğrulama ve erişim yöntemi |
| Başsız WordPress | Ön yüz içerik alamaz | Ön yüzün istek attığı API adresi |
| Normal ziyaretçi sayfaları | API kullanılmıyorsa genellikle etkilenmez | Tema ve eklentilerin özel API çağrıları |
Örneğin bir WordPress sitesinde klasik tema, klasik düzenleyici ve API kullanmayan bir iletişim eklentisi varsa ziyaretçiler sayfaları görmeye devam edebilir. Ancak aynı sitede blok düzenleyiciyle yazı düzenlenirken kaydetme isteği engelleniyorsa yönetici içerik güncelleyemez. Sorun, sitenin tamamen açılmamasından çok belirli işlevlerin hata vermesi şeklinde ortaya çıkar.
Kapatmadan önce ve sonra nasıl kontrol edilir?
- Önce yedek veya geri dönüş planı hazırlayın ve kullandığınız eklentilerin REST API gerektirip gerektirmediğini kontrol edin. Özellikle blok düzenleyici, başsız ön yüz, mobil uygulama ve harici senkronizasyonları listeleyin.
- API erişimini kapatmadan önce yazı düzenleme, kaydetme, medya yükleme, menü veya bileşen düzenleme ve eklentilerin temel ekranlarını test edin.
- Bir istekle genel yanıtı gözlemleyin. Örneğin terminalde
curl -i https://example.com/wp-json/komutunu çalıştırın. API açıkken JSON yanıtı, engellendiğinde ise yapılandırmaya bağlı olarak401,403veya başka bir hata yanıtı görülebilir. - Kapatma sonrasında aynı testleri giriş yapmış bir yönetici olarak ve normal ziyaretçi oturumunda tekrarlayın. Yalnızca dışarıya açık veriyi sınırlamak istiyorsanız, yönetici işlemlerinin de engellenip engellenmediğini ayrıca doğrulayın.
- Bir işlev bozulursa API'yi bütünüyle açmak yerine önce hangi eklentinin veya uç noktanın gerektiğini belirleyin. Mümkünse yalnızca gereksiz anonim erişimi sınırlayan veya belirli uç noktayı koruyan yapılandırmayı tercih edin.
Komutun başarısız olması tek başına API'nin kapalı olduğunu kanıtlamaz. Güvenlik duvarı, sunucu kuralı, yanlış site adresi, önbellek veya yetki eksikliği de aynı isteği etkileyebilir. Yanıt kodu ve sunucu günlükleri birlikte incelenmelidir.
REST API'yi kapatmak XML-RPC'yi kapatmakla aynı işlem değildir. Bir güvenlik eklentisi iki arayüzü birlikte kısıtlayabilir, fakat birinin engellenmesi diğerinin de otomatik olarak kapandığı anlamına gelmez.
wp-json ana dizinine tek curl isteği tüm uç noktaların açık/kapalı olduğunu kanıtlamaz. Pretty permalink kapalı kurulumda ?rest_route=/ kullanılabilir; WAF yalnız bir yol biçimini kısıtlıyorsa diğerini de değerlendirin. Yetkili editör isteklerinde cookie+REST nonce veya dış entegrasyonda desteklenen Application Password kimlik doğrulaması gerektiğini ayırın. Anonim okuma bazı uç noktaların tasarlanan işidir; kişisel veri veya yönetim eyleminde permission_callback ve yetki kontrollerini düzeltmek blanket kapatmadan daha belirleyicidir.
Sık yapılan hatalar
- API'nin yalnızca dış uygulamalar için olduğunu sanmak: Blok düzenleyici ve yönetim ekranları da API kullanabilir.
- Tüm API'yi kapatıp yalnızca tek bir eklentiyi düzeltmeye çalışmak: Daha dar bir kural aynı amaca daha az yan etkiyle ulaşabilir.
- Yalnızca ana sayfayı test etmek: Yönetim ekranı, kaydetme, medya ve dinamik bileşenler ayrıca denenmelidir.
- Bir hata yanıtını doğrudan güvenlik sonucu kabul etmek: Yetki, güvenlik duvarı ve sunucu yapılandırması da kontrol edilmelidir.
Kaynaklar
Sık sorulan sorular
REST API kapalıyken WordPress sitesi ziyaretçilere açık kalır mı?
Tema ve eklentiler sayfa oluştururken REST API kullanmıyorsa ziyaretçiler normal sayfaları görebilir. Ancak API'den veri çeken dinamik bölümler çalışmayabilir.
REST API'yi kapatmak giriş bilgilerini korur mu?
Tek başına kapsamlı bir güvenlik çözümü değildir. Kullanılmayan erişimi azaltabilir; fakat yönetici hesapları, eklentiler, sunucu yapılandırması ve diğer WordPress arayüzleri ayrıca korunmalıdır.
Blok düzenleyici çalışmıyorsa API'yi hemen açmalı mıyım?
Önce hangi isteğin başarısız olduğunu ve yanıt kodunu belirleyin. Engelin gerçekten REST API kuralından kaynaklandığı doğrulanırsa, gerekli uç noktayı veya yetkili erişimi istisna yapmak tüm API'yi kontrolsüz biçimde açmaktan daha uygun olabilir.