WordPress'te giriş denemelerini nasıl sınırlarım?
Yazan: Eureka Studio · Güncellendi
Kısa yanıt
WordPress herkesin sonsuza kadar parola tahmin etmesine izin verir. Giriş denemelerini sınırlamak için başarısız girişleri bir süre penceresi içinde IP başına sayan ve o IP'yi bir süreliğine kilitleyen bir eklenti kullan; örneğin 5 dakikada 8 başarısız deneme 15 dakika bekleme demek olsun. 2FA ve uygulama parolası hatalarının da sayıldığından emin ol ve kendi IP'ni izin listesine ekle.
Adımlar
1Adım 1
Sınırsız tahminin neye benzediğini gör
Sınır yoksa WordPress her yanlış parolaya, kaç kez sorulursa sorulsun aynı hatayla cevap verir; varsayılan mesaj kullanıcı adının var olduğunu bile doğrular.

2Adım 2
Deneme Sınırı'nı aç ve kuralları belirle
WordPress'te Hushfort → Sınırlar ve Kısıtlamalar sekmesini aç ve Deneme sınırını aç anahtarını aç. Varsayılanlar: 5 dakika içinde 8 başarısız deneme, ardından 15 dakikalık kilit; 24 saat içinde 4 kilitten sonra kilit 1.440 dakika sürer. Kaydet'e bas.

3Adım 3
Kendi IP'ni izin listesine ekle ve IP kaynağını kontrol et
Biraz aşağıda IP kaynağı ayarını yap. "Otomatik (yalnız doğrulanmış proxy başlıkları)", Cloudflare arkasındakiler dahil çoğu siteye uyar. Ardından kendini asla dışarıda bırakmaman için ofis ya da ev IP'ni İzinli IP'ler altına ekle ve kaydet.

4Adım 4
Bir IP kilitlendiğinde e-posta al
Alarm adresi anahtarını aç ve virgülle ayırarak bir ya da birden fazla adres yaz. Bu anahtar sitede çalışan bir SMTP gerektirir; SMTP yoksa Hushfort seçeneği kapalı tutar ve nedenini söyler.

5Adım 5
Sınırın çalıştığını izle
İzin verilen sayıda başarısız denemeden sonra IP yeni bir deneme hakkı almak yerine kilitlenir. Geçmiş ekranı her aktif engeli denenen kullanıcı adı, deneme sayısı ve engelin bitiş zamanıyla, bir Engeli kaldır düğmesiyle birlikte listeler.
Neden önemli
Kaba kuvvet saldırısı sabırdan ibarettir: bir parola dene, tutmazsa sonrakini dene. WordPress buna aldırmaz. Aynı adresten gelen bininci yanlış tahmine de ilki kadar kibarca cevap verir. Bir hesabın parolası zayıfsa ya da başka yerde de kullanılıyorsa iş yalnızca zaman meselesidir.
Bir giriş sınırı hesabı değiştirir. Bir IP on beş dakika beklemek zorunda kalmadan önce yalnızca birkaç deneme yapabiliyorsa, düzgün bir parolayı tahmin etmek saatler yerine yıllar sürer. Ayrıca sunucunu bir bot için giriş sayfasını tekrar tekrar oluşturmaktan kurtarır.
Tek başına kapsamadığı şey. Binlerce IP adresine sahip saldırganlar her birinden birkaç tahmin gönderebilir. Bu yüzden giriş sınırı en iyi, tahmin edilen bir parolayı kod olmadan işe yaramaz hale getiren iki adımlı girişle birlikte çalışır.
Sık yapılan hatalar
- Yalnızca giriş formunu saymak. Parolalar
xmlrpc.phpüzerinden, REST API uygulama parolaları üzerinden ve iki adımlı doğrulamanın kod adımında da denenebilir. Bunlar sınıra sayılmıyorsa saldırganlar doğrudan onları kullanır. XML-RPC girişini de kapat; XML-RPC'yi güvenle kapatma rehberine bak. - Proxy arkasında yanlış IP'yi okumak. Siten Cloudflare arkasındaysa ve eklenti proxy'nin
adresini okuyorsa tek bir bot tüm ziyaretçileri kilitleyebilir. Bunun yerine
X-Forwarded-Forbaşlığına körü körüne güveniyorsa bir bot her istekte yeni bir IP uydurabilir ve hiç sayılmaz. Güvenli kural, proxy başlıklarına yalnızca istek gerçekten proxy'den geliyorsa güvenmektir. - Fazla uzun kilitler. Üç yazım hatası için 24 saatlik kilit kendi çalışanlarını cezalandırır. İlk kilidi kısa tut, tekrarlanan kilitleri uzat.
- İzin listesi olmaması. Unutulan bir parola seni asla dışarıda bırakmasın diye kendi sabit IP'ni ekle.
Eklentisiz
WordPress'te her başarısız girişten sonra tetiklenen bir kanca var: wp_login_failed. Başarısız
denemeleri bir transient ile sayabilir ve sayı çok yükseldiğinde girişleri reddedebilirsin. Bir
must-use eklentisi (wp-content/mu-plugins/login-limit.php) için en sade sürüm:
<?php
add_action( 'wp_login_failed', function () {
$key = 'll_' . md5( $_SERVER['REMOTE_ADDR'] );
$n = (int) get_transient( $key );
set_transient( $key, $n + 1, 15 * MINUTE_IN_SECONDS );
} );
add_filter( 'authenticate', function ( $user ) {
$key = 'll_' . md5( $_SERVER['REMOTE_ADDR'] );
if ( (int) get_transient( $key ) >= 8 ) {
return new WP_Error( 'too_many', 'Too many failed attempts. Try again later.' );
}
return $user;
}, 30 );
İşe yarar ama neleri kaçırdığı konusunda dürüst olalım: yalnızca REMOTE_ADDR okur, yani proxy
arkasında proxy'yi sayar; XML-RPC multicall tahminlerini ayrı denemeler olarak saymaz; izin listesi,
uyarı e-postası ve kayıt yoktur. Bunların her biri yazılacak ve bakımı yapılacak daha fazla kod
demektir.
Bazı barındırma firmaları erişim kaydını izleyen fail2ban gibi sunucu düzeyinde araçlar da sunar. Firman bunu senin için çalıştırıyorsa güçlü bir çözümdür; paylaşımlı hostingde genellikle kuramazsın.
Bir şeyler ters giderse
- Kendini dışarıda bıraktın. Kilidin bitmesini bekle, mobil veri gibi başka bir ağdan dene ya da başka bir yöneticiden IP'ni izin listesine eklemesini iste.
- Herkes aynı anda kilitleniyor. Siten büyük ihtimalle bir proxy arkasında ve eklenti proxy'nin IP'sini okuyor. IP kaynağı ayarını değiştir.
- Hiç kilit oluşmuyor. IP kaynağının botların sahteleyebileceği bir başlığa güvenip güvenmediğini kontrol et. Her deneme farklı bir "IP" gösteriyorsa sebep budur.
İçeri dönmenin tüm yolları için Giriş adresini değiştirdikten sonra dışarıda kaldıysan sayfasına bak.
Hushfort ile
Deneme Sınırı, ücretsiz WordPress güvenlik eklentisi Hushfort Security'nin üzerine kurulan ücretli eklenti Hushfort Pro'nun parçasıdır.
Hushfort'un Deneme Sınırı katmanı başarısız girişleri senin seçtiğin bir süre penceresi içinde IP başına (ya da IP ve kullanıcı adı başına) sayar ve IP'yi senin seçtiğin süre kadar kilitler. 24 saat içinde tekrarlanan kilitler daha uzun bir kilidi tetikleyebilir.
- Başarısız iki adımlı doğrulama kodları ve başarısız uygulama parolası girişleri de sayılır; tahmin için bir yan kapı kalmaz.
- Proxy başlıklarına yalnızca istek gerçekten Cloudflare'den ya da özel bir ağdan geliyorsa güvenilir.
- Uyarı e-postaları listelediğin tüm adreslere gider.
- Her başarısız ve engellenen deneme filtrelenebilir bir Geçmiş'te görünür.
- İzin listesi diğer tüm Hushfort katmanlarıyla ortaktır; kendini bir kez eklersin.
Hushfort'u devre dışı bırakmak mevcut tüm kilitleri kaldırır.
Sık sorulan sorular
Kaç giriş denemesine izin vermeliyim?
WordPress giriş denemelerini varsayılan olarak sınırlıyor mu?
Bir giriş sınırı beni kendi sitemin dışında bırakabilir mi?
Giriş denemelerini sınırlamak kaba kuvvet saldırısını durdurmaya yeter mi?
Cloudflare arkasında kilitler neden yanlış kişilere denk geliyor?
İlgili rehberler
WordPress'e iki adımlı doğrulama (2FA) nasıl eklenir?
Herhangi bir doğrulama uygulamasıyla girişe ikinci adım ekle: WordPress'te 2FA'yı kur, kurtarma kodlarını sakla, telefonu kaybedersen ne yapacağını bil.
Adımları okuxmlrpc.php nedir ve WordPress'te nasıl kapatılır?
xmlrpc.php, giriş sayfasını gizlemenin kapatmadığı ikinci bir kapıdır. WordPress'te XML-RPC'yi güvenle kapatma, pingback'leri koruma ve test etme yolu.
Adımları okuWordPress giriş adresini (URL) nasıl değiştiririm?
WordPress giriş adresini değiştir ve wp-admin'i beş güvenli adımda gizle. Çıkış yapmadan önce test et, adresi unutursan içeri nasıl döneceğini bil.
Adımları oku
