WordPress .htaccess ile Wp-login.php ‘yi Şifreleyelim.
Şu wordpress’in admin hack, Xss hack, SQL injection hackleri yüzünden bir sürü güncelleme yaptık. Hala da yeni bir güvenlik açığı ortaya çıkabilmekte. WordPress’i yıllardır kullanmaktayım ve bu hack olaylarına karşı herkes gibi bende extra güvenlik önlemleri alıyorum.
Bunlardan bir tanesi wp-admin girişine .htaccess ile extra şifre koymak..!
En kesin ve en güvenli yöntemlerden birtanesi olduğunu söylemek isterim. WordPress admin hack konusunda nasıl bir açık çıkarsa çıksın yada admin şifrenizi kim çalarsa çalsın .htaccess ile şifreleyeceğimiz wp-login.php dosyasına erişemeyeceklerdir. Wp-login.php dosyamızı aşağıda anlattığım şekilde .htaccess ile şifrelediğimizde wp-admin girişine gelen isteklerde Apache sunucumuz extra olarak koyduğumuz şifreyi soracaktır. Öncelikle apache’yi aşmak gerkecek. Ondan sonra wp-admin girişi karşısına gelerek wordpress admin paneline giriş yapılabilir.
Google üzerinden aradığınız zaman .htaccess ile şifreleme hakkında bilgi bulabilirsiniz. Bu yöntemler işe yaramayacaktır. Standart .htaccess ile şifreleme WordPress’in .htaccess dosyasına takılacak ve şifrelemeye izin vermeyecektir.
Şimdi anlatacağım yöntemde WordPress’in .htacess dosyasına ekleyeceğimiz kodlar ile şifrelemeyi gerçekleştireceğiz.
Öncelikle hostunuzda public_html , www yada alanadınız.com olan klasörlerimizin bir üst dizinine çıkarak .htpasswd dosyamızı oluşturmamız gerekiyor.
1. . htpasswd dosyasını oluşturmak ;
Bu dosyada Apache’nin bize soracağı şifreyi belirteceğiz. Yalnız bu şifreyide güvenli bir dizinde saklamamız gerekmekte. Benim hostingimde wordpress dosyalarım
/home/teakolik.com/www dizininde sizinkinde farklı olacaktır. Cpanel yada Plesk ile dosyalarınıza erişerek bir üst dizine yani /home klasörüne veya /home/teakolik.com gibi hesap klasörümüze ulaşıyoruz. Bu klasör içerisine .htpasswd dosyamızı oluşturacağız. (www içerisine atmıyoruz..!)
teakolik:asasdas324235235sdfasdf
gibi bir user ve şifre belirteceğiz. Burada dikkat ederseniz şifremiz aslında şifrelenmiş bir şekilde yani bir nevi apache üzerinde de şifreleme yapıyoruz. Direk olarak kullanıcı adından sonra şifreyi yazamayız. Bir şifre oluşturmak için
http://www.e2.u-net.com/htaccess/make.htm
adresine giriyoruz ve bir user pass belirliyoruz. Encrypt butonuna bastığımızda bize bir kod üretiyor. Bu kodu .htpasswd adıyla bir dosya olarak ftp dosyalarımızın üst dizinimize (/home/teakolik gibi) kayıt ediyoruz.
2. WordPress .htaccess dosyasını düzenlemek ;
WordPress’in kurulu olduğu dizindeki .htacess dosyamızı açıp içerisine şu kodları yerleştiriyoruz.
ErrorDocument 401 default AuthUserFile /home/.htpasswd AuthName "Blog" AuthType Basic <Files "wp-login.php"> require valid-user </Files>
Bu işlemi yaparken .htaccess içerisindeki diğer kodlara dokunmuyoruz. Aynen olduğu gibi kalıyorlar ve alt satırlara bu kodu yapıştırıyoruz. Bu kodda dikkat etmeniz gereken /home/teakolik.com/ dosya yolumuz. WordPress wp-login dosyasına erişildiğinde .htpasswd üzerinden şifreyi okuyacak ve doğrulayacaktır. Dosya yolumuzu dikkatle giriyoruz. 1. Adımda belirttiğimiz .htpasswd dosyası neredeyse aynı yolu girmemiz gerekiyor. Aryıca yine bu kodların altına
<Files "xmlrpc.php"> require valid-user </Files>
kodlarını girersek bu kod sayesinde xmlrpc yani wordpress’in pingleme servisinin çalışmaması için gerekli kodlar eğer Genelde, eğer pingback ve trackback kullanmıyorsanız bu dosyayı da güvenliğe almanız ekstra güvenlik önlemi olacaktır. Eğer yukarıdaki gibi koduda eklersek sistem ping alış-verişi yapmayacak biraz daha güvenli olabilecek. Ben kullanmıyorum. Eğer wordpress’in pingleme servisini kullanmıyorsanız bu koduda .htacess e ekleyerek sistemin güvenliğini extra olarak artırabilirsiniz. (Düzeltme için Emre Erkan‘a teşekkürlerimi iletirim.)
Örnek .htacess dosyamızın şekli şöyle oldu ;
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
ErrorDocument 401 default AuthUserFile /home/.htpasswd # Şifremizin bulunduğu dosya yolunu belirttik AuthName "Blog" AuthType Basic
<Files "wp-login.php"> require valid-user #Şifreledik </Files>
Dosyamızı kayıt ettik ve işlemler bitti. Atık WordPress’i biraz daha kafanız rahat bir şekilde kullanabilirsiniz. En azından yeni bir admin XSS açığı çıktığında kafanız rahat olur
Kolay gelsin..!





Windows server üzerinde .htaccess yoktur. Bunu host firmanızdan isteyebilir yada kodları Win Server üzerine yorumlayarak güvenlik sağlayabilirsiniz.
Denedim, çalıştı ancak oluşturduğum şifreyi girdikten sonra beni anasayfaya yönlendirdi. Buda .htacces dosyası ile ilgili sanırım ancak nasıl ayarlandığı konusunu bulamadım. Yardımcı olabilirseniz sevinirim. İyi çalışmalar…
ultraslan939[at]yahoo[dot]com
Bunlardan bir tanesi wp-admin girişine .htaccess ile extra şifre koymak..!
Bu kadar uğraşmak istemeyenler için bir ekleme yapmak istiyorum. cPanel de password protected directory bölümünden bunu yapabilirsiniz.
@Can Dirgen; Kurulu olan Wp üzerine Cpanel’den bu işlemi yaptığınızda malesef ki çalışmıyor. Mevcut WordPress’in .htaccess dosyasını açıp editlemeniz gerekiyor. Wp klasörü olmasa başka bir klasör olsaydı bu işlemi Cpanel üzerinden rahatlıkla yapabilirdik.
tşk paylaşımın için admin
Hocam ben kuramadım ya. public_html olan dizine koydum. sora publich html girdim. .httpacces bunun içine verdiğiniz kodları ekledim. wp admine giriş yaparken kullanıcı adı ve pasword istedi şifrelenmiş bilgileri girdim kabul etmedi. sora şifrelenmemiş haliyle girdim yine kabul etmeni ne yapmam gerek. Dönüş yaparsanız cok minnettar kalırım
Çok güzel bir konu çok teşekkürler çok işimize yaradı bu şifreleme olayı
teşekkürler yapacam dedim yaptım oldu.
bu dediklerini aynen uyguladım abi, wp-login.php ‘ye girince şifre de soruyor. giriyorum fakat girdikten sonra 404 sayfasına yönleniyor blogun. Ne olabilir sorun?
Benim merak ettiğim birşey var. Diyelim ki bir sitenin .htaccess i yazılabilir durumda. O siteye zarar verilebiliyor mu? Bunun için önlem almak gerekir mi.
Hamza abi dediklerini uyguladım ama wp-admin’e girince şifre istiyor. Şifreyi yazıyorum 404 sayfasına yönleniyor. Sorun ne olabilir
Sanırım bir yerde hata yapıyorsun. Tekrar baştan dikkatlice yapmanı tavsiye ederim.
Kodları aynen yine denedim yine olmadı :/
Eline saglik kardesim, cok isime yaradi.