Yakın zamanda bir okuyucudan sıkça duyduğumuz bir soru aldık: “WordPress sitemde REST API'yi nasıl devre dışı bırakabilirim?” Ve dürüst olmak gerekirse, bu geçerli bir endişe.
WordPress sürüm 4.4, JSON REST API ile yayınlandığında, geliştiriciler için bir olasılıklar dünyası açtı.
Ancak, bu gelişmiş özelliklere ihtiyaç duymayan birçok site sahibi için API, gereksiz bir ekleme gibi görünebilir ve potansiyel olarak sitelerini güvenlik risklerine maruz bırakabilir.
Bu makalede, JSON REST API'yi WordPress'te nasıl kolayca devre dışı bırakacağınızı göstereceğiz.

WordPress'te JSON REST API Neden Devre Dışı Bırakılmalı?
API'nin WordPress geliştiricileri için pek çok faydası olduğu inkar edilemez. API, GET istekleri kullanarak veri almayı çok kolaylaştırır, bu da WordPress ile uygulama geliştirenler için kullanışlıdır.
Bununla birlikte, bu durum web sitenizi potansiyel olarak yeni bir DDoS saldırısı cephesine açabilir. Ayrıca kaynak yoğun olabilir ve WordPress web sitenizi yavaşlatabilir.
JSON REST API'yi devre dışı bırakmak, birçok site yöneticisinin güvenlik açısından WordPress sitelerinde devre dışı bıraktığı XML-RPC'yi devre dışı bırakmaya benzer.
Bununla birlikte, WordPress'te JSON REST API'yi kolayca devre dışı bırakmak için size iki yöntem göstereceğiz. Kullanmak istediğiniz yönteme atlamak için aşağıdaki hızlı bağlantıları kullanmanız yeterlidir:
Yöntem 1. Kodu Kullanarak WordPress'te JSON REST API'yi Devre Dışı Bırakma (Önerilen)
WordPress işlevselliğini değiştirmek söz konusu olduğunda, kod parçacıkları kullanmak genellikle en iyi yaklaşımdır. Ancak, temanızın functions.php dosyasını doğrudan düzenlemek riskli olabilir ve doğru yapılmazsa sitenizi bozabilir.
Bu nedenle, WordPress'te JSON REST API'yi devre dışı bırakmak için WPCode eklentisini kullanmanızı öneririz.
Tema dosyalarını düzenlemeden WordPress'te özel kod eklemek için kendi web sitelerimizde kullandığımız eklentiyle aynıdır.
Eklentiyi nasıl kullandığımız hakkında daha fazla bilgi edinmek için tam WPCode incelememize bakın.

Ayrıca, WPCode, REST API'yi devre dışı bırak, XML-RPC'yi devre dışı bırak gibi popüler özellik istekleri için doğrulanmış kod parçacıkları içeren yerleşik bir kod kitaplığına sahiptir ve çok daha fazlası.
Bu, farklı görevler için birden fazla tek kullanımlık eklenti yüklemekten sizi kurtarır.
Başlamak için ücretsiz WPCode eklentisini yükleyip etkinleştirmeniz gerekir. Adım adım talimatlar için, bir WordPress eklentisinin nasıl kurulacağına dair kılavuzumuzu okuyun.
Not: WPCode'un ücretsiz sürümü, WordPress'e özel kod eklemek için ihtiyacınız olan her şeye sahiptir. Ancak, özel bir bulut kod parçacığı kitaplığı, sayfa ve cihaza özel kod parçacıkları, kod revizyonları ve daha fazlası gibi gelişmiş özellikler istiyorsanız, WPCode Pro'ya yükseltebilirsiniz.
Eklenti etkinleştirildikten sonra, WordPress kontrol panelinizden Kod Parçacıkları » Kitaplık bölümüne gidin.
Ardından, ‘WordPress REST API'yi Devre Dışı Bırak’ kod parçasını arayın ve ‘kod parçasını kullan’ düğmesine tıklayın.

Eklenti daha sonra kodu sizin için otomatik olarak ekleyecek ve uygun ekleme yöntemini de seçecektir.

Yapmanız gereken tek şey anahtarı 'Etkin Değil' konumundan 'Etkin' konumuna getirmektir.
Ardından, 'Güncelle' düğmesine tıklayın.

İşte bu kadar. Artık WordPress sitenizde JSON REST API devre dışı bırakıldı.
Yöntem 2. Bir Eklenti ile WordPress'te JSON REST API'yi Devre Dışı Bırakma
Özel bir eklenti yardımıyla JSON REST API'yi kolayca devre dışı bırakabilirsiniz.
Yapmanız gereken ilk şey, Disable REST API eklentisini yüklemek ve etkinleştirmektir. Daha fazla ayrıntı için, bir WordPress eklentisinin nasıl kurulacağına dair adım adım kılavuzumuza bakın.
Eklenti kutudan çıktığı gibi çalışır ve yapılandırmanız gereken herhangi bir ayar yoktur.
Etkinleştirildiğinde, eklenti web sitenize giriş yapmamış kaynaklardan gelen herhangi bir API isteğine kimlik doğrulama hatası döndürecektir.
Bu, yetkisiz isteklerin REST API'yi kullanarak web sitenizden bilgi almasını etkili bir şekilde engelleyecektir.
Bunu http://example.com/wp-json sayfasını ziyaret ederek test edebilirsiniz. Öncelikle WordPress yönetici alanından çıkış yaptığınızdan veya tarayıcınızı gizli moda aldığınızdan emin olun.
example.com'u kendi alan adınızla değiştirmeyi unutmayın. REST API isteklerinin engellendiğini gösteren bu mesajı göreceksiniz.

Hepsi bu kadar, WordPress sitenizde yetkisiz REST API isteklerini başarıyla devre dışı bıraktınız.
Alternatif Yöntem: WordPress'te REST API Bağlantılarını Kodla Devre Dışı Bırakma
WordPress REST API'sini devre dışı bırakmak yerine, yalnızca REST API bağlantılarını devre dışı bırakmayı seçebilirsiniz. Bu, REST API'yi tamamen kapatmadan API uç noktalarını WordPress sitenizin kaynak kodundan gizler.
Bu yöntemle, tüm WordPress özelliklerini normal şekilde çalışır durumda tutarken uç noktaları bulmayı zorlaştırarak güvenliği artırabilirsiniz. REST API'nin işlevsellik için çalışmasına ihtiyaç duyan temaları veya eklentileri bozmadan güvenlik eklediği için geliştiriciler arasında popüler bir seçimdir.
Bunu yapmak için WPCode eklentisini yükleyip etkinleştirmeniz gerekir. Yardıma ihtiyacınız olursa, bir WordPress eklentisinin nasıl kurulacağına dair eğitimimize bakın.
Etkinleştirme sonrasında WordPress kontrol panelinizden Kod Parçacıkları » Kitaplık bölümüne gidin.
Oradan, ‘REST API Bağlantılarını Devre Dışı Bırak’ kod parçacığını arayın. Bulduğunuzda, üzerine gelin ve ‘Kod parçacığını kullan’ düğmesine tıklayın.

Bundan sonra, WPCode kod parçacığını otomatik olarak ekleyecek ve uygun ekleme yöntemini seçecektir.

Şimdi yapmanız gereken tek şey geçişi 'Etkin Değil'den 'Etkin'e getirmek.
Son olarak, 'Güncelle' düğmesine basın.

İşte bu kadar basit. Artık WordPress web sitenizde REST API bağlantıları devre dışı bırakılacak.
Umarız bu makale, WordPress'te JSON REST API'yi nasıl devre dışı bırakacağınızı öğrenmenize yardımcı olmuştur. Güvenlik bilincine sahip kullanıcılar ayrıca WordPress yönetici alanını koruma konusundaki ipuçlarımıza göz atmak veya en iyi WordPress yedekleme eklentileri hakkındaki beklentilerimizi görmek isteyebilirler.
Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.


Dennis Muthomi
Özellikle belirttiğiniz iki yöntemi, özellikle de WPCode'u kullanan kod tabanlı yaklaşımı takdir ediyorum. Bir site sahibi olarak, API'nin faydaları nedeniyle onu devre dışı bırakmaktan çekiniyordum, ancak potansiyel güvenlik riskleri hakkındaki açıklamanız beni yeniden düşünmeye sevk etti.
WPCode eklentisi ve özel kod parçacıklarını güvenli bir şekilde yönetme yeteneği beni ilgilendiriyor. Tek kullanımlık eklentilerle sitemi karıştırmadan diğer WordPress özelleştirmelerini uygulamak için bu aracı kesinlikle daha fazla araştıracağım.
Bunun için teşekkürler. WPBeginner EN İYİSİ!
Dayo Olobayo
WordPress'te JSON REST API'yi devre dışı bırakma konusundaki bu eğitimin netliğini takdir ediyorum. Ancak, web sitesi işlevselliği ve diğer hizmetlerle entegrasyon için potansiyel faydaları göz önüne alındığında, API'yi tamamen devre dışı bırakmanın en iyi yaklaşım olup olmadığını merak ediyorum.
WPBeginner Desteği
Site sahibinin ihtiyaçları için en iyisi olup olmadığına veya kullanırken bir sorunla karşılaşıp karşılaşmadığına bağlı olacaktır.
Yönetici
Dayo Olobayo
Teşekkürler. Sahibinin benzersiz ihtiyaçlarını ve koşullarını göz önünde bulundurarak JSON REST API'nin potansiyel güvenlik risklerini faydalarına karşı tartmanın önemli olduğunu düşünüyorum.
Jiří Vaněk
Merhaba Dayo Olobayo,
Soru daha çok bu API'yi kullanıp kullanmadığınızla ilgili. XML-RPC ile aynı. Web sitemde kullanmıyorum, bu yüzden devre dışı bıraktım. Elbette bu, örneğin XML-RPC'yi kullanarak bağlanan WordPress mobil uygulamasıyla web sitesine bağlanamayacağım anlamına geliyor. Her zaman devre dışı bırakmak istediğiniz ile izin vermek istediğiniz arasında bir denge söz konusudur. Dış istekleri kabul eden herhangi bir API potansiyel bir risk olabilir ve bu sadece onu kullanıp kullanmak istemediğiniz meselesidir.
RJW
Kurulumun bazı özellikleri bozduğunu fark ettim, bu yüzden üretim ortamından önce geliştirme ortamında devre dışı bırakma eklentisini denerdim.
WPBeginner Desteği
Birçok farklı eklentiniz ve aracınız varsa ve bir test ortamınız varsa, yeni eklentileri ve sitenizle nasıl etkileşimde bulunduklarını test etmek kesinlikle iyi olacaktır.
Yönetici
Ricky
Yukarıdaki bir yorumcuya benzer şekilde, Pingdom ve diğer test sitelerini kullanırken "wp-json" isteğini fark ettim. Ne yazık ki, benim yüklenmesi 10 saniyeden fazla sürüyor (Evet gerçekten!!). Bu, genel web sitesi yükleme süremizi artırıyor ve bunu nasıl düzelteceğimi anlayamıyorum. Eklenti bunu hiç değiştirmiyor. Herhangi bir öneriniz var mı?
Janice
Web sitemde gerçekten JSON API olup olmadığını nasıl anlarım?
Bu makale, eğer ihtiyacım olursa diye JSON API'yi kaldırma hakkında iyi bilgiler veriyor – ancak birçok kez belirli uyarılar beni endişelendirdi ve sonra bunların benim için geçerli olmadığını fark ettim.
WPBeginner Desteği
Merhaba Janice,
Eğer kendi kendine barındırılan bir WordPress.org sitesi kullanıyorsanız, web sitenizde JSON REST API mevcuttur.
Yönetici
Logan Cale
Basit bir görev için başka bir eklenti eklemekten nefret ediyorum ve bu işlevi functions.php dosyasına aşağıdaki kod parçasını ekleyerek devre dışı bırakabileceğimizi buldum.
add_filter(‘rest_enabled’, ‘_return_false’);
add_filter(‘rest_jsonp_enabled’, ‘_return_false’);
Margarit Koka
Teşekkürler kardeşim, bu sayfayı ziyaret ederken aradığım şey cevabındaydı.
Bobby C.
Teşekkürler! Doğrudan konuya.
Hari
Bu kodu arıyordum, işe yaradı, teşekkürler, eklenti eklemeyi tercih etmiyorum.
Michael
Yardımınız için teşekkürler. Eklentilerimde ‘yeni ekle’ seçeneği yok.
WPBeginner Desteği
Muhtemelen WordPress.com kullanıyorsunuz. Lütfen kendi barındırdığınız WordPress.org ve ücretsiz WordPress.com blog arasındaki fark hakkındaki kılavuzumuza bakın.
Yönetici
Lynne
Thank you! Spot on
worked for me
J.L.
Bu sadece kendi kendine barındırılan bloglar için mi yoksa ücretsiz blog sitelerini de kapsıyor mu? Çoğu eklenti… vb. kendi kendine barındırılmıyorsanız sizin için yapılmıştır.
Not: Abone olmuyorum… sadece bir yanıt istiyorum
WPBeginner Desteği
Bu yalnızca kendi barındırılan WordPress.org siteleri içindir.
Yönetici
Elaine
Sitemde REST API olup olmadığını nasıl kontrol edebilirim. Kurulumun başında birçok ekstra özelliği kapattım ama şimdi orada olup olmadığını görmek için nereye bakacağımı bilmiyorum. Gereksiz yere bir eklenti indirmek istemiyorum.
WPBeginner Desteği
Merhaba Elaine,
REST API'nin sitenizde etkin olup olmadığını, example.com/wp-json gibi bir URL'yi ziyaret ederek kontrol edebilirsiniz. Bunu yapmadan önce WordPress'ten çıkış yaptığınızdan emin olun. Düz metin halinde çok fazla bilgi görürseniz, bu REST API'nin sitenizde etkin olduğu anlamına gelir. Kapatmak için yukarıdaki talimatları izleyin.
Yönetici
Saransh Jain
Jetpack eklentisinde json rest api'yi devre dışı bırakma seçeneği ne olacak?
Ken Dowling
REST API'yi devre dışı bırakmak WooCommerce gibi e-ticaret siteleri için uygun mu? Anladığım kadarıyla WooCommerce REST-API'yi oldukça fazla kullanıyor.
Ayrıca, alıcılarımın satın almak için giriş yapmaları gerekmiyor, bu nedenle bir REST API çağrısı reddedilirse işlem ne olur?
Saygılarımla, Ken
D. Joe Chaffin
Eklenti, WP 4.7.2'de benim için hiçbir fark yaratmıyor. Eklenti etkin veya devre dışı olsa da, example.com/wp-json (alan adımdaki "example" yerine kendi alan adım) sayfaları sitem için büyük bir ayarlar listesi veriyor.
D. Joe Chaffin
Hımmm. Şimdi baktığımda, listeyi yalnızca Safari'de görüyorum, oysa Mac için Chrome ve Firefox bu gönderide belirtilen beklenen mesajı gösteriyor.
WPBeginner Desteği
Merhaba,
example.com/wp-json sayfasını test etmeden önce WordPress yönetici alanından çıkış yaptığınızdan veya gizli modu kullandığınızdan emin olun. Eklenti sayfaya yalnızca yetkisiz kullanıcılar için erişimi devre dışı bırakır. Bir yönetici olarak siz hala görebileceksiniz.
Yönetici
D. Joe Chaffin
Utanç verici… Haklısınız, tabii ki.
Audra Carpenter
Merhaba Millet,
Öncelikle yaptığınız iş için çok teşekkürler! Sizden Wordpress hakkında çok şey öğrendim ve bir sürü kişiyi size yönlendirdim!!
Tamam, eklentiyi kurdum ama yukarıda önerdiğiniz şeyi göremiyorum? Tam ekran bilgi mi var…?
Düşünceler?
Teşekkürler!
WPBeginner Desteği
Merhaba Audra,
Lütfen çıkış yapın veya test etmek için gizli pencere kullanın. Eklenti yalnızca oturum açmamış kullanıcılar için erişimi devre dışı bırakır.
Yönetici
Hazine
Bu adımları izledim, ancak örnek vb. ile kontrol etmeye gittiğimde, yukarıda gösterilen yanıt yerine 2 sayfa kod aldım. Hmmm, ne yapacağımı bilmiyorum.
Hazine
Tamam, tekrar yaptım ve doğru mesajı aldım. Teşekkürler!
Doug Nix
Testi çalıştırdığımda başarısız olduğunu düşünüyorum, çünkü ekranda bir sürü veri gördüm. Neyin çalışmamış olabileceğine dair bir fikriniz var mı? Eklentiyi tarif edildiği gibi kurdum…
Doug Nix
Gizli pencere kullanarak kontrol ettiğimde mükemmel çalışıyor. Yetkili ve yetkisiz veya anonim kullanıcılar hakkındaki açıklama için teşekkürler.
Laura Zielke
Mükemmel çalıştı. Teşekkürler!
Karl
XMLRPC'yi devre dışı bırakmak için verdiğiniz ipucu ve kanca için teşekkürler.
REST API için de bir filtre kancası olasılığı var mı?
Andrew
Sitemin hızını pingdom.com kullanarak kontrol ettiğimde, yüklenmeye çalışan ilk html girişi bağlantıyı mydomain.com/wp-json olarak gösteriyor ve 2 saniyeden fazla "bekleme" süresi var. Bu, makalenin bahsettiği şeyle aynı mı? Gelecekte kullanılacağını varsaydığım için onu devre dışı bırakmakta tereddüt ediyorum. Sayfadaki herhangi bir şeyi yüklemeye 2+ saniyelik bir gecikme eklemesinin nedeni hakkında bir fikriniz var mı?
Stephen Cronin
Hmm, REST API, eklentiler ve temalar için arka uca Ajax çağrıları yapmak üzere varsayılan yöntem haline gelecek, admin-ajax'ın yerini alacak, bu yüzden onu devre dışı bırakmazdım… Umarım zarif bir şekilde başarısız olurlar, ancak bazı işlevleri kaçıracaksınız.
Also, if you really want to protect against DDoS attacks, you better disable html as well!
reza
WordPress REST API'de keşfedilen büyük bir güvenlik açığı nedeniyle 50.000'den fazla WordPress web sitesi hacklendi.
Jim S Smith
AH!
Bunu bilmek rahatsız edici. Sitemin günlüklerinde ÇOK sayıda erişim girişimi fark ettim.
Dahası,
Bence WordPress'teki yetkililer, REST API'nin ne kadarının, hatta hiç açılıp açılmayacağının kararını kullanıcılara bırakma konusunda biraz daha iyisini yapabilirdi.
Tekrar,
Bunun daha fazlası, “Geliştiriciler kullanıcının ihtiyaçları hakkında kullanıcıdan DAHA FAZLASINI biliyor!” – Ayrıca, sitelerim kullanmasa da EMOJI ve fonts.google.com'dan uzaktan yüklenen yazı tiplerini desteklemek zorunda kalmaktan pek hoşlanmadım!
REST API, (bazı) gerçek web uygulaması geliştiricileri için bir nimet olabilir, ancak bunu pek kullanmayacak diğerleri için ne demeli? ? ?
Kasey
Bir eklentinin bu işlevi kullanma olasılığı ne kadar? Sadece örnek olarak iletişim formları bunu kullanır mı? Bir şeyi bozma ihtimaline karşı kapatmak istemiyorum.
WPBeginner Desteği
Eklentiler, kapalıysa kullanacaklarsa sizi büyük olasılıkla bilgilendirecektir.
Yönetici