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: