Sitenizin Arka Kapısını Kilitleyin: xmlrpc.php Tehlikesi ve Çözümü

WordPress sitenizi kurdunuz, temanızı seçtiniz ve güvenlik eklentilerinizi yüklediniz. Peki ya sitenizin arka kapısı, yani xmlrpc.php ne durumda? Çoğu site sahibinin varlığından bile haberdar olmadığı, ancak siber saldırganların en sevdiği giriş noktalarından biri olan bu dosyayı ve onu nasıl güvenli hale getirebileceğimizi bu yazıda inceliyoruz. Üstelik hazır eklentilere muhtaç kalmadan, kendi yazdığımız mini bir kod ile!

xmlrpc.php Nedir? Eskiden internet bağlantıları yavaştı ve WordPress yönetim paneline girmek zahmetliydi. Bu yüzden “Windows Live Writer” gibi masaüstü programlarından veya eski mobil uygulamalardan siteye yazı göndermek için XML-RPC (Uzak Yordam Çağrısı) adında bir iletişim protokolü geliştirildi.

Kısacası xmlrpc.php, siteniz ile dış dünyadaki uygulamaların konuşmasını sağlayan bir kapıdır. Ancak günümüzde modern WordPress sürümleri, çok daha güvenli olan REST API’yi kullanıyor. Yani xmlrpc.php artık çoğu site için “eski ve gereksiz” bir teknolojiye dönüştü.

Neden Kapatmalıyız? (Güvenlik Riskleri) Bu dosya varsayılan olarak açık gelir ve iki büyük riski beraberinde getirir:

Brute Force (Kaba Kuvvet) Saldırıları: Normal giriş panelinizde (wp-login.php) bir saldırgan şifre denerse kilitlenir. Ancak xmlrpc.php üzerinden tek bir istek ile yüzlerce şifre denemesi yapabilirler.

DDoS Saldırıları: Siteniz “pingback” özelliği kullanılarak başka sitelere saldırmak için bir piyon gibi kullanılabilir veya kendi siteniz yoğun istek altında çökebilir.

Çözüm: Kendi Mini Eklentimizi Yazalım Piyasada bunu yapan eklentiler var ancak sırf bu iş için sitenizi ağırlaştıran büyük eklentiler kurmanıza gerek yok. Aşağıda paylaştığım kod bloğu, WordPress’in dosya sistemini kullanarak sunucu seviyesinde (.htaccess dosyasına kural ekleyerek) bu kapıyı kilitler.

Bu kodu bir .php dosyası olarak kaydedip wp-content/plugins klasörüne atabilir veya zip yapıp yükleyebilirsiniz.

<?php
/**
* Plugin Name: Mini XML-RPC Engelleyici
* Description: .htaccess dosyasına kural ekleyerek xmlrpc.php erişimini sunucu seviyesinde engeller.
* Version: 1.0
* Author: Vedat Aydar
* Author URI: https://vedataydar.com
*/

if ( ! defined( 'ABSPATH' ) ) { exit; }

register_activation_hook( __FILE__, 'mx_xmlrpc_activate' );

function mx_xmlrpc_activate() {
$rules = array(
'<Files xmlrpc.php>',
'Order Allow,Deny',
'Deny from all',
'</Files>',
);
require_once( ABSPATH . 'wp-admin/includes/file.php' );
insert_with_markers( get_home_path() . '.htaccess', 'Mini XML-RPC Blocker', $rules );
}

register_deactivation_hook( __FILE__, 'mx_xmlrpc_deactivate' );

function mx_xmlrpc_deactivate() {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
insert_with_markers( get_home_path() . '.htaccess', 'Mini XML-RPC Blocker', array() );
}

// Ek güvenlik: PHP seviyesinde de filtreleyelim
add_filter( 'xmlrpc_enabled', '__return_false' );

Nasıl Çalışır? Bu eklentiyi aktif ettiğinizde, sunucunuzdaki .htaccess dosyasına otomatik olarak Deny from all (Herkesi reddet) kuralını yazar. Eklentiyi pasif yaptığınızda ise bu kuralı siler. Temiz ve güvenli.

Dikkat Edilmesi Gerekenler eğer Jetpack eklentisini kullanıyorsanız veya WordPress’in resmi mobil uygulamasından sitenizi yönetiyorsanız, bu dosyayı tamamen kapatmak bağlantınızı koparabilir. Bu araçları kullanmıyorsanız, performans ve güvenlik için kapatmanızı şiddetle öneririm.

Web dünyasında kullanılmayan her kapı, potansiyel bir güvenlik açığıdır. Bu basit yöntemle WordPress sitenizin güvenliğine önemli bir katman eklemiş oldunuz.

Sorularınız veya kodla ilgili önerileriniz varsa yorumlarda buluşalım!

Kodlar Kodlayana, Kahveler Bana! ☕

Burada paylaştığım içerikler projelerinde işine yaradıysa veya sana zaman kazandırdıysa, bir kahve ısmarlayarak desteğini gösterebilirsin. Bu destek, daha fazla içerik üretmem için motive edici olacaktır.

☕ Bana Bir Kahve Ismarla

Bir yanıt yazın

21 Aralık 2025

WooCommerce için Ülkeye Göre Otomatik Para Birimi Değiştirme (Manuel Fiyat)

E-ticaret sitelerinde yurt dışına satış yaparken en büyük dertlerden biri fiyatlandırmadır. Piyasadaki çoğu “Currency Switcher” (Para Birimi Değiştirici) eklentisi, fiyatı o anki kura göre otomatik çarpar. […]
21 Aralık 2025

Eklenti Çöplüğüne Son: WooCommerce Vitrin ve Fırsat Alanlarını Kodla Yönetin

Standart WooCommerce bileşenleri (Son Eklenenler, Çok Satanlar vb.) çoğu zaman işimizi görse de, e-ticaret projelerinde sıklıkla daha spesifik alanlara ihtiyaç duyarız. “Editörün Seçimi“, “Haftanın Yıldızları” veya […]
18 Aralık 2025

Gereksiz Görsellerden Kurtulun: E-Ticaret Sitenizi Hafifletin

WooCommerce tabanlı bir e-ticaret sitesi yönetiyorsanız, muhtemelen fark etmişsinizdir: Bir ürünü sildiğinizde, o ürüne ait fotoğraflar medya kütüphanenizde ve sunucunuzda kalmaya devam eder. WordPress, güvenlik önlemi […]