Kategoriler
WordPress

.htaccess ile WordPress girişini korumak

WordPress admin panelini ve login sayfasını korumak için .htaccess çözümü. Net ve en etkili yöntem.

Daha önce çeşitli WordPress güvenlik ipuçları paylaştım ancak WordPress admin paneli ve login/giriş sayfası için en iyi yöntem kesinlikle bu yeni göstereceğim yöntemdir.

Bu yeni yöntem aslında daha önce https://wolkanca.com/wordpress-login-guvenligi/ adresinde yazdığım ek şifre yönteminden daha da kolay ve etkili ve başka dosya/dizinler için de kullanabileceğiniz bir uygulamadır.

Öncelikle bunu yapma nedenlerimizi yazayım, şu sebeplerle yapıyoruz; 1- WordPress login sayfanıza ulaşıp şifrenizi tahmin edilmesine ve 2- milyonlarca WordPress sitesinde aynı yolda bulunan wp-login.php dosyasına ve /wp-admin/ klasörü içerisine otomatik saldırılardan kurtulmak. https://wordpress.org/support/article/brute-force-attacks/

Yapmamız gereken 2 şey var, ilki içeriği aşağıdaki gibi olan herhangibir.php dosyası oluşturmak:

<?php 
header('X-Robots-Tag: noindex', true); 
header('Cache-Control: no-cache, must-revalidate, max-age=0'); 

//random bir rakam(değiştirebilirsiniz)
$yonetici_cookie="123456789"; 

//Tarayıcınıza cookie ekler(WolkancaSession değiştirebilirsiniz)
setcookie("WolkancaSession",$yonetici_cookie,0,"/"); 

//Login sayfasına veya paneline yönlendirir
header("Location: ../wp-admin/index.php"); 
?> 

Yukarıdaki herhangibir.php isimli dosyanın içerisinde “123456789” verisini dilediğiniz gibi randoım bir rakamla değiştirebilirsiniz. Ayrıca isterseniz “WolkancaSession” ismini de değiştirebilirsiniz. Yine ayrıca “herhangibir.php” ismini isterseniz lebaleb.php isterseniz istediğiniz farklı random bir isim verebilirsiniz ki tahmin edilemesin, benimkisi elbette sahsim.php tahmin edebileceğiniz gibi 🙂

Evet dosyayı sitenizin ana dizinine koyduktan sonra aşağıdaki .htaccess kodunu sitenizin .htaccess dosyası içerisine ekleyin bu iş burada bitsin:

<IfModule mod_rewrite.c>
RewriteEngine On
#WolkancaSession cookie yok ise 403 verir çalışmaz
RewriteCond %{REQUEST_URI}^/wp-admin/(.*)$ [OR,NC]
RewriteCond %{REQUEST_URI}/wp-login.php
RewriteCond %{HTTP_COOKIE}!WolkancaSession=123456789
RewriteRule .* - [L,F]
</IfModule>

Yukarıdaki .htaccess kuralı /wp-admin/ ve wp-login.php adreslerini yalnızca cookie mevcutsa çalıştıracaktır, cookie yok ise hata sayfasını gösterecektir, bu sayede WordPress üzerine çalışan hackerları hayal kırıklığına uğratacaksınız. Bu kuralı ve yöntemi başka dosyalar ve sitenizde başka gizli kalamsı, giriş yapılmamış ise gösterilmemesi gereken şeyler için de kullanabilirsiniz ki en sağlam yol budur zira web’de araştırdığınızda genelde WordPress’de bu tür giriş yapılmış ise gösterilsin denilen dosyalar için insanlar cookie “wordpress_logged_in” kullanıyorlar fakat bu güvenli değil çünkü çok kolayca taklit edilebilmekte ve o gizli dosyalara ulaşılabilmektedir, hackerların tek yapması gereken tarayıcısına wordpress_logged_in cookie atamak ve keyfini çıkarmak.

Diğer web güvenliği ile ilgili yazdığım yazılara da bakınız:

Cloudflare ile WordPress güvenliği: Cloudflare Firewall ile WordPress sitenizi korumaya alın.
WordPress güvenlik ve performans [2021]: WordPress güvenlik, performans ve fazlası. Bu ipuçlarının hepsi şahsım tarafından test edilmiş ve onaylanmıştır.
WordPress login güvenliği: WordPress login sayfanızı hackerlardan korumak için yapılabilecek bazı işlemler.
WordPress versiyonunu gizlemek: WordPress en çok hack saldırısı alan sistemlerden biri. WordPress versiyonunu ve tema css, js versiyonlarını gizleyerek önlem alabilirsiniz. Ayrıca site hızınızı arttırabilirsiniz.
Yönetici harici WordPress Admin panelini yasaklamak
WordPress Security – Güvenlik
Web sitenizin güvenliğini test edin [Ücretsiz]: Web sitenizin güvenlik açıklarını ve kötü amaçlı yazılımları taramak için ücretsiz 11 online araç
Web sitesi güvenliğini iyileştirme: Web sitenin güvenliği noktasında bazı tavsiyeler ve fikirler.
En iyi PHP gizleyicileri: Burada, kaynak kodlarınızı korumak için her zaman kullanabileceğiniz en iyi 8 PHP Gizleyicilerini/PHP Obfuscators uygulamalarını paylaştım.