WordPress

    WordPress Giris (wp-admin) URL'sini Gizleme

    wp-login adresini degistirerek bot giris denemelerini azaltma

    11 dk okuma Güncellendi: 10 Temmuz 2026

    Yeni bir WordPress kurup birkaç gün bekleyin, ardından hosting hesabınızın erişim loglarına bakın. Neredeyse hiç ziyaretçi almamış olsanız bile /wp-login.php ve /xmlrpc.php satırlarının onlarca, hatta yüzlerce kez tekrarlandığını görürsünüz. Bu istekler gerçek insanlardan gelmez; internette gezinip her WordPress kurulumunun aynı yerde durduğunu bilen otomatik botlardan gelir. Çünkü WordPress'in giriş kapısı standarttır: dünyadaki her kurulumda kullanıcı adı ve şifre formu tam olarak aynı adreste, alanadiniz.com/wp-login.php üzerinde bekler. Bu öngörülebilirlik, saldırganların işini kolaylaştıran en büyük zafiyetlerden biridir.

    Bu yazıda, giriş adresinizi standart konumundan alıp yalnızca sizin bildiğiniz özel bir yola taşımayı ele alacağız. Ancak baştan net olmakta fayda var: URL gizleme tek başına bir güvenlik çözümü değildir, bir "gizlilikle savunma" (security through obscurity) tekniğidir. Kapının yerini değiştirmek, kapıyı sağlamlaştırmakla aynı şey değildir. Doğru kurgulandığında otomatik saldırı hacmini gözle görülür biçimde düşürür; yanlış anlaşıldığında ise sizi olmadığınız kadar güvende hissettirir. Aşağıda hem yöntemleri hem de bu tekniğin sınırlarını, birlikte kullanılması gereken gerçek savunma katmanlarıyla beraber anlatacağım.

    Standart Giriş Adresi Neden Bir Hedeftir#

    Otomatik bot saldırılarının mantığını anlamak, çözümü de anlaşılır kılar. Botlar tek tek sitelerle uğraşmaz; internetin tamamını tarayıp WordPress imzası taşıyan adresleri toplu halde listeye alır. Bir site WordPress ise giriş formunun /wp-login.php veya /wp-admin/ altında olacağı yüzde yüz bilinir. Bot buraya kullanıcı adı ve şifre kombinasyonlarını sırayla dener. Buna kaba kuvvet (brute force) saldırısı denir.

    Saldırının başarı şansı düşük olsa bile maliyeti botlar için neredeyse sıfırdır. Aynı anda binlerce siteye deneme yapabilir, zayıf şifre kullanan ilk kurbanı bulunca içeri girerler. Sizin siteniz özel olarak hedef alınmasa da, "WordPress çalıştıran her adres" havuzunun bir parçası olduğunuz için sürekli taciz altındasınız demektir. Bu isteklerin en görünür yan etkisi güvenlik değil, kaynak tüketimidir: her başarısız giriş denemesi PHP çalıştırır, veritabanına sorgu atar ve sunucunuzun CPU'sunu meşgul eder. Paylaşımlı hosting hesaplarında bu yük sitenizi fark edilir biçimde yavaşlatabilir.

    Giriş adresini taşımak, botun bildiği kapıyı ortadan kaldırır. /wp-login.php'yi ziyaret eden bot artık formu değil, bir 404 sayfası bulur. Denenecek bir hedef olmadığında istek dizisi de anlamsızlaşır. Bu, saldırıyı durdurmaz ama otomatik trafiğin büyük bölümünü boşa düşürür.

    Gizlilikle Savunma (Obscurity) Neyi Çözer, Neyi Çözmez#

    Güvenlik dünyasında "obscurity" kelimesi çoğu zaman küçümseyici bir tonla kullanılır, ama bu haksızlıktır. Doğru katmanlanmış bir savunmanın parçası olarak obscurity son derece işe yarar. Yanlış olan, onu tek savunma sanmaktır.

    Aşağıdaki tablo, giriş URL'sini gizlemenin gerçekte hangi tehdide karşı ne kadar etkili olduğunu netleştiriyor.

    Tehdit türüURL gizleme etkisiGerçek çözüm
    Otomatik wp-login.php bot taramasıYüksek — istekler 404 dönerURL gizleme yeterli
    Rastgele kaba kuvvet denemeleriYüksek — hedef kaybolurURL gizleme + giriş limitleme
    Hedefli, sizi tanıyan saldırganDüşük — yeni yolu bulabilir2FA + güçlü şifre
    Sızmış şifre listesiyle denemeSıfır — şifre zaten bilinir2FA zorunlu
    xmlrpc.php üzerinden saldırıSıfır — ayrı bir kapıxmlrpc'yi kapatmak

    Buradaki kritik ayrım şudur: URL gizleme, sizi "tanımayan" toplu botlara karşı çok etkilidir çünkü onlar körlemesine standart adresi dener. Ama sitenizi özel olarak hedef alan biri, tarayıcı geliştirici araçlarını açıp bir formu incelediğinde veya belirli izleri takip ettiğinde yeni giriş yolunu bulabilir. Aynı şekilde, şifreniz herhangi bir veri sızıntısında ele geçmişse, saldırganın giriş formunu bulması durumunda gizli adresin hiçbir koruyucu değeri kalmaz. Bu yüzden URL gizlemeyi her zaman güçlü bir parolayla, giriş denemesi limitlemesiyle ve iki faktörlü doğrulamayla birlikte kurgulamalısınız. Konunun bütününü WordPress güvenliği rehberimizde daha geniş ele aldık.

    En Kolay Yöntem: WPS Hide Login Eklentisi#

    Kod yazmadan giriş adresini değiştirmenin en pratik yolu WPS Hide Login eklentisidir. Hafif, tek amaca odaklı ve milyonlarca kurulumda test edilmiş bir eklentidir. Sitenizin .htaccess dosyasına veya sunucu yapılandırmasına dokunmaz; isteği WordPress seviyesinde yakalayıp yeniden yönlendirir.

    Kurulumu birkaç adımdan ibarettir. WordPress panelinde Eklentiler > Yeni Ekle bölümünden WPS Hide Login aratıp kurun ve etkinleştirin. Ardından Ayarlar > Genel sayfasının en altına inin. Burada iki alan görürsünüz:

    • Login url — Yeni giriş adresiniz. Örneğin girisyap yazarsanız giriş sayfanız alanadiniz.com/girisyap olur.
    • Redirection url — Birisi eski /wp-admin veya /wp-login.php adresine giderse nereye yönlendirileceği. Genellikle 404 bırakılır ki bot bir kapı olmadığını sansın.

    Ayarları kaydettiğiniz anda değişiklik devreye girer. Bu noktada dikkatli olun: yeni adresi bir yere not edin. Eğer unutursanız kendi sitenize giremezsiniz, çünkü artık /wp-admin çalışmayacaktır. Böyle bir durumda eklentiyi FTP veya dosya yöneticisiyle geçici olarak devre dışı bırakmanız gerekir.

    Seçtiğiniz kelime de önemlidir. admin, login, giris gibi tahmini kolay sözcükler yerine markanıza özgü, tahmini zor bir dize kullanın. Kısa bir rastgele ek bile büyük fark yaratır:

    # Zayıf — tahmin edilebilir
    alanadiniz.com/login
    alanadiniz.com/giris
    
    # Güçlü — tahmin edilmesi zor
    alanadiniz.com/kapi-7f3a
    alanadiniz.com/ekip-girisi-92x
    

    WPS Hide Login çoğu kullanıcı için yeterlidir ve önerdiğimiz temel güvenlik eklentileri arasında yer alır; ilgili tam listeyi WordPress eklenti önerileri yazımızda bulabilirsiniz.

    Sunucu Seviyesinde Gizleme: Nginx ve Apache#

    Eklentiye bağımlı kalmak istemeyen veya birden çok siteyi tek noktadan yöneten sistem yöneticileri, giriş adresini doğrudan web sunucusunda maskeleyebilir. Bunun avantajı, isteğin WordPress'e ve dolayısıyla PHP'ye hiç ulaşmadan sunucu katmanında karşılanmasıdır; bu da kaynak açısından en verimli yöntemdir.

    Nginx kullanıyorsanız, wp-login.php erişimini gizli bir sorgu parametresine bağlayabilirsiniz. Aşağıdaki örnekte doğru anahtar gelmeden wp-login.php'ye yapılan istekler reddedilir:

    # Gizli anahtar olmadan wp-login.php'yi engelle
    location = /wp-login.php {
        # Yalnızca ?erisim=gizli-anahtar-4821 ile gelenler geçer
        error_page 418 = @login_ok;
        if ($arg_erisim != "gizli-anahtar-4821") {
            return 404;
        }
        return 418;
    }
    
    location @login_ok {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root/wp-login.php;
    }
    

    Bu kurguda giriş adresiniz alanadiniz.com/wp-login.php?erisim=gizli-anahtar-4821 olur ve anahtarsız her deneme 404 döner. Alternatif olarak, belirli bir IP aralığından gelenlere izin verip diğerlerini tamamen kapatabilirsiniz. Ofisinizin sabit IP'si varsa bu en sağlam yaklaşımdır:

    location = /wp-login.php {
        allow 203.0.113.45;   # Ofis IP adresi
        allow 198.51.100.0/24; # VPN aralığı
        deny all;
    
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root/wp-login.php;
    }
    

    Apache tarafında aynı IP kısıtlamasını .htaccess içinde uygulayabilirsiniz:

    <Files wp-login.php>
        Require ip 203.0.113.45
        Require ip 198.51.100.0/24
    </Files>
    

    Bu sunucu düzeyi yapılandırmalar, giriş sayfasını yalnızca gizlemez, doğrudan erişimi de kısıtlar. Ancak yapılandırma dosyalarına erişiminiz yoksa, örneğin paylaşımlı bir hosting paketindeyseniz, bu seçenekler her zaman kullanılabilir olmayabilir. Kök erişimine ve tam kontrole ihtiyaç duyuyorsanız VDS sunucu veya sanal sunucu çözümleri bu tür özelleştirmelere uygundur. Yapılandırmayı kendiniz yönetmek istemiyorsanız sunucu yönetimi hizmetimiz devreye girebilir.

    xmlrpc.php'yi de Unutmayın#

    Giriş adresini gizlemek yalnızca yarım tedbirdir, çünkü WordPress'in ikinci bir kimlik doğrulama kapısı daha vardır: xmlrpc.php. Bu dosya, mobil uygulamaların ve bazı eklentilerin siteye uzaktan bağlanması için kullanılır, ancak aynı zamanda kaba kuvvet saldırılarının en sevdiği hedeftir. Çünkü system.multicall yöntemiyle tek istekte yüzlerce şifre denenebilir; yani wp-login.php'yi gizleseniz bile saldırgan xmlrpc.php üzerinden çok daha verimli deneme yapabilir.

    Eğer WordPress mobil uygulaması, Jetpack'in belirli özellikleri veya uzaktan yayın araçlarını kullanmıyorsanız xmlrpc.php'yi tamamen kapatmak en temiz çözümdür. Nginx'te:

    location = /xmlrpc.php {
        deny all;
        return 403;
    }
    

    Apache .htaccess içinde:

    <Files xmlrpc.php>
        Require all denied
    </Files>
    

    Kapatmadan önce sitenizin bu dosyaya gerçekten ihtiyaç duyup duymadığını kontrol edin. Çoğu klasik blog ve kurumsal site için xmlrpc.php gereksizdir ve kapatılması yalnızca fayda sağlar. Giriş URL'sini gizleyip bu kapıyı açık bırakmak, ön kapıyı kilitleyip arka kapıyı ardına kadar açık unutmaya benzer.

    Gizlemeyi Tamamlayan Gerçek Savunma Katmanları#

    URL gizleme, savunma piramidinin en alt ve en ucuz katmanıdır. Üzerine gerçek güvenlik mekanizmalarını eklemediğiniz sürece kırılgan kalır. İşte birlikte kullanmanız gereken katmanlar:

    Giriş denemesi limitleme. Belirli sayıda başarısız denemeden sonra IP'yi geçici olarak engelleyen bir mekanizma, kaba kuvvet saldırısını pratik olarak imkânsız hale getirir. Limit Login Attempts Reloaded gibi eklentiler ya da sunucu düzeyinde Fail2ban bunu sağlar. Örnek bir Fail2ban jail yapılandırması şöyle görünür:

    [wordpress-auth]
    enabled  = true
    filter   = wordpress-auth
    logpath  = /var/log/nginx/access.log
    maxretry = 5
    findtime = 300
    bantime  = 3600
    

    İki faktörlü doğrulama (2FA). Şifreniz ele geçse bile ikinci bir doğrulama adımı olmadan giriş yapılamaz. Bu, listedeki en güçlü tek savunmadır ve URL gizlemenin çözemediği "sızmış şifre" senaryosunu tamamen kapatır. WordPress için Google Authenticator uyumlu birçok ücretsiz eklenti mevcuttur.

    Güçlü ve benzersiz parola. Basit görünse de temeldir. admin kullanıcı adını hiç kullanmayın ve her siteye özgü, uzun bir parola belirleyin. Bir parola üretmek için:

    # 24 karakterlik güvenli parola üret
    openssl rand -base64 24
    

    Web uygulaması güvenlik duvarı (WAF). Bilinen saldırı kalıplarını istek sunucuya ulaşmadan filtreleyen bir katmandır. Giriş sayfası dahil tüm siteyi kaba kuvvet ve enjeksiyon denemelerine karşı korur. Bu katmanı WAF hizmetimizle ekleyebilir, hacimli saldırılara karşı DDoS koruma çözümüyle destekleyebilirsiniz.

    Aşağıdaki tablo, hangi katmanın hangi senaryoda devreye girdiğini özetliyor:

    KatmanNe yaparMaliyet
    URL gizlemeToplu botları körleştirirÜcretsiz
    Giriş limitlemeDeneme sayısını sınırlarÜcretsiz
    2FASızmış şifreyi etkisiz kılarÜcretsiz
    WAFSaldırı kalıplarını filtrelerHizmet
    DDoS korumaHacimli saldırıyı emerHizmet

    Değişiklikten Önce ve Sonra Yapılması Gerekenler#

    Giriş adresini değiştirmeden önce mutlaka güncel bir yedek alın. Yanlış bir yapılandırma sizi kendi panelinizin dışında bırakabilir ve geri dönüşün en hızlı yolu sağlam bir yedektir. Yedeklemeyi otomatikleştirmek için yedekleme hizmetimize göz atabilir veya bir wp-cli komutuyla veritabanınızı hızlıca dışa aktarabilirsiniz:

    # Değişiklikten önce veritabanı yedeği
    wp db export yedek-$(date +%F).sql --allow-root
    

    Değişikliği yaptıktan sonra iki şeyi test edin. Önce yeni giriş adresinin çalıştığını doğrulayın; ardından eski /wp-login.php ve /wp-admin adreslerinin gerçekten 404 veya yönlendirme döndürdüğünü kontrol edin. Bunu tarayıcıda gizli sekme açarak veya komut satırından basitçe sınayabilirsiniz:

    # Eski adres artık 404 dönmeli
    curl -I https://alanadiniz.com/wp-login.php
    
    # Yeni adres 200 dönmeli
    curl -I https://alanadiniz.com/kapi-7f3a
    

    Yeni giriş adresini asla e-posta, mesaj ya da herkese açık bir yerde paylaşmayın; ekip üyeleriyle güvenli bir parola yöneticisi üzerinden iletin. Ayrıca giriş sayfanızın mutlaka geçerli bir SSL sertifikasıyla, yani HTTPS üzerinden sunulduğundan emin olun. Şifreler şifresiz bir bağlantıda taşınırsa, adresi gizlemenin hiçbir anlamı kalmaz. Sertifikanız yoksa ücretsiz ve ücretli SSL çözümlerimizi inceleyin.

    Sık Yapılan Hatalar#

    Uygulamada en sık karşılaştığım hataları kısaca sıralayayım, çünkü bunların çoğu kolayca önlenebilir:

    • Yeni adresi not etmemek. En yaygın hata budur ve doğrudan kilitlenmeye yol açar. Adresi kaydetmeden ayarı uygulamayın.
    • Tahmin edilebilir bir kelime seçmek. /giris veya /panel gibi sözcükler, sözlük tabanlı botların ilk denediği yollardır. Rastgelelik ekleyin.
    • xmlrpc.php'yi açık unutmak. Az önce anlattığımız gibi bu, gizlemenin tüm faydasını yok edebilir.
    • URL gizlemeyi tek savunma sanmak. 2FA ve giriş limitleme olmadan, gizli adres bulunduğu an savunma çöker.
    • Önbellek eklentisiyle çakışma. Bazı önbellek eklentileri giriş sayfasını da önbelleğe alarak yönlendirme sorunları yaratabilir; giriş yolunu önbellek istisnalarına ekleyin.

    Bir sorun yaşarsanız ve panele hiç giremezseniz, panik yapmayın. Hosting kontrol panelinizin dosya yöneticisinden ilgili eklenti klasörünün adını değiştirmek eklentiyi anında devre dışı bırakır ve varsayılan giriş adresi geri döner. WordPress'i sıfır kesintiyle başka bir sunucuya taşımanız gerekirse site taşıma hizmetimiz süreci sizin yerinize yürütür.

    Sıkça Sorulan Sorular#

    WordPress giriş adresini değiştirmek gerçekten güvenli mi?#

    Giriş adresini değiştirmek tek başına tam bir güvenlik önlemi değildir, otomatik bot trafiğini azaltan bir gizleme tekniğidir. Sizi tanımayan toplu botlara karşı çok etkilidir çünkü onlar standart adresi körlemesine dener. Ancak hedefli bir saldırgana veya sızmış bir şifreye karşı tek başına yeterli değildir; mutlaka iki faktörlü doğrulama ve giriş denemesi limitlemesiyle birlikte kullanılmalıdır.

    Yeni giriş adresimi unutursam ne olur?#

    Bu durumda /wp-admin artık çalışmadığı için panele giremezsiniz, ancak site tamamen kilitlenmiş olmaz. FTP, SSH ya da hosting kontrol panelinizin dosya yöneticisiyle giriş adresini değiştiren eklentinin klasör adını değiştirerek eklentiyi devre dışı bırakabilirsiniz. Eklenti pasif hale gelince varsayılan wp-login.php adresi geri döner ve normal şekilde giriş yapabilirsiniz. Bu yüzden değişiklik öncesi yedek almak önemlidir.

    WPS Hide Login site performansını etkiler mi?#

    Hayır, WPS Hide Login son derece hafif bir eklentidir ve yalnızca giriş isteklerini yönlendirme mantığı çalıştırır. Sayfa yükleme hızınıza ölçülebilir bir etkisi olmaz. Aksine, gizli adres sayesinde botların wp-login.php'ye yaptığı yüzlerce başarısız deneme 404 döneceği için sunucunuzdaki gereksiz PHP ve veritabanı yükü azalır; yani dolaylı olarak performansa katkı bile sağlayabilir.

    Sunucu yapılandırması mı yoksa eklenti mi tercih etmeliyim?#

    Paylaşımlı hosting kullanıyorsanız ve sunucu yapılandırma dosyalarına erişiminiz yoksa WPS Hide Login gibi bir eklenti en pratik seçenektir. Kendi sunucunuzu yönetiyorsanız veya birden çok siteyi tek noktadan korumak istiyorsanız, Nginx ya da Apache düzeyinde IP kısıtlaması ve gizli yol tanımlamak daha verimlidir çünkü istek PHP'ye hiç ulaşmadan sunucu katmanında karşılanır. İkisini birlikte de kullanabilirsiniz.

    xmlrpc.php'yi kapatırsam bir şey bozulur mu?#

    Çoğu klasik site için xmlrpc.php'yi kapatmak hiçbir sorun yaratmaz ve güvenliği belirgin biçimde artırır. Ancak WordPress mobil uygulamasını, Jetpack'in bazı özelliklerini veya uzaktan içerik yayınlama araçlarını kullanıyorsanız bu özellikler çalışmayabilir. Kapatmadan önce hangi eklenti ve hizmetlerin bu dosyaya ihtiyaç duyduğunu kontrol edin; ihtiyaç yoksa gönül rahatlığıyla kapatabilirsiniz.

    Giriş adresini gizlemek yerine sadece 2FA kullansam olmaz mı?#

    İki faktörlü doğrulama en güçlü tekil savunmadır ve şifreniz sızsa bile girişi engeller, dolayısıyla önceliğiniz her zaman 2FA olmalıdır. Ancak URL gizleme, 2FA'nın çözmediği bir sorunu çözer: sunucunuza gelen otomatik bot trafiği hacmini ve buna bağlı kaynak tüketimini düşürür. İkisi farklı katmanlardır ve birlikte kullanıldığında hem saldırı yüzeyini hem de sunucu yükünü azaltır; biri diğerinin yerine geçmez.

    Kapanış#

    WordPress giriş adresini gizlemek, birkaç dakikada uygulanabilen, otomatik saldırı hacmini gözle görülür biçimde düşüren ve sunucu kaynaklarınızı rahatlatan akıllıca bir ilk adımdır. Ama unutmayın: bu bir başlangıç katmanıdır, varış noktası değil. Gerçek güvenlik, gizli adresin üzerine güçlü parola, giriş limitleme ve iki faktörlü doğrulamayı ekleyerek katmanlı biçimde inşa edilir. Kapının yerini değiştirmek iyidir; kapıyı sağlamlaştırmak şarttır.

    Sitenizi bu katmanların hepsiyle donatmak istiyorsanız Clou.TR çözümleri yanınızda. Performanslı ve güvenli bir başlangıç için WordPress hosting paketlerimize göz atabilir, tam kontrol isteyen projeler için VDS sunucu seçeneklerini değerlendirebilirsiniz. Saldırıları istek sunucuya ulaşmadan filtrelemek için WAF ve DDoS koruma hizmetlerimizi, sürekli bakım ve izleme için de WordPress bakım paketimizi ekleyebilirsiniz. Güvenli bir WordPress kurulumu, doğru altyapıyla başlar.

    wordpressguvenlikgiris

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.