WordPress htaccess Güvenlik

wpenvolay.com/wordpress-guvenlik-onlemleri
Güncelleme 01.01.2021

 

Htaccess, Linux sunucularda kullanılan bir yapılandırma / bir komut dosyasıdır. Apache Web / HTTP Server sunucular için geliştirilmiş bir komut dosyası olsa da diğer Linux Serverlar’da da otomatik ve manuel olarak desteklenir. Sunucunun Güvenlik Yapılandırmalarından – Yetkilendirmelerine ve Erişim İzinlerinden URL Yönlendirmeleri / Yeniden Yazma kurallarına kadar çok esnek konfigürasyonları kapsar ve Hypertext Access’in kısaltmasıdır. Drupal, Joomla, WordPress gibi bir İçerik Yönetim Sistemi (CMS) tarafından otomatik olarak gelir ve çoğu sunucular kullanıcı tarafından düzenlenmesine / oluşturulmasına izin verir.

 

WordPress sisteminin temel güvenlik yapılandırmaları, ayarlar ve yönlendirmeleri için; -varsayılan olarak kabul edilebilecek- düzenlemelerini uygulamanız, hem WordPress üzerindeki işlerliliğinizi hem de temel yetkilendirme ve güvenlik önlemlerinizi garanti altına alır. Htaccess dosyası sunucunun kök klasöründe; public_html dizininde bulunur; müdahale etmeniz için FileZilla gibi bir FTP istemcisi kullanmanız veya cPanel / Plesk paneller üzerindeki Dosya Yöneticisine başvurmanız gerekir.

 

Yapılandırmadan önce Htaccess dosyanızın yedeğini alın. Yanlış bir yapılandırma, sunucunuzda Internal Server Error sonucunu döndürecektir: Varsayılan için aşağıdaki Varsayılan konfigürasyonu izleyin: Konudaki bütün Htaccess komutlarının yazım hatası ve çalışabilirlikleri test edilmiştir 

 

WordPress Default / Varsayılan Htaccess

 


 

WordPress Default / Varsayılan Htaccess; bu dosyaya müdahale eden bir eklenti / servis varsa eğer Htaccess üzerindeki yapılandırmalarını da sıfırlayacaktır 

 

WordPress .htaccess Kodları (WordPress Güvenlik – Temel)

Dizin Taramayı Devre Dışı Bırakın

Dizinlerdeki bütün dosyaları dışarıdan erişime kapatın: WordPress Dizin Gizleme hakkında ayrıntılı bilgi almak için WodPress’de Dizin Taramayı Devre Dışı Bırakma konusunu inceleyin


 

WordPress Sürümünü Gizli Tutun

Kök dizinde bulunan (public_html) ve silinse bile güncelleme sonrası yine gelen license.txt dosyası WordPress sisteminin sürümü hakkında bilgi sızdırır. Genelde sakıncalı olarak yorumlanmıyor olsa da WordPress sisteminizin sürümü; bir hacking senaryosunda kullanışlı bilgidir. Çünkü bir önceki sürümde taranmış açıklar son sürümde kapatılmış olabilirler ve dolayısıyla WordPress’in sürümünü öğrenmek girişim için kestirme bir yol açabilir. Bununla birlikte WordPress CMS kullandığınızı gizleyecek (eğer böyle bir amacınız varsa) metotlardan sadece biri olan readme.html dosyasını da engelleyebilirsiniz.

 


 

Kritik PHP Dosyalarına Erişimi Engelleyin

WordPress sisteminde çekirdek dosyalara erişim; bir hack girişiminde Backdoor / Arka kapı açabilir ve olası bir açık tarafından da bu dosyalara dışarıdan müdahale edilebilir. Güvenlik açıklarının sistematik olarak kontrol edilmediğini varsaydığımızda; çekirdek dosyalarının kontrol edilmesini önceden önlemek, temel WordPress güvenliğinin en kolay ve en hızlı yoludur.

 



  </FilesMatch> yönergesi yerine, tek bir dosya için deny from all yönergisini de kullanabilirsiniz 

 

Hotlink Suistimallerini Engelleyin

Sitenizdeki her bir dosya download edildiğinde / görüntülendiğinde bant genişliği harcar. Dosyaların doğrudan link yapıları, başka bir web sitesi tarafından da kullanılabilir ve bu durum bant genişliğinizi çalınmasına yol açar. Aşağıdaki komutun son satırını özelleştirebilirsiniz; video / text formatlarını da buraya ekleyebilirsiniz. Example.com dosyaların görüntüleneceği adrestir; web sitenizin alan adı ile değiştirin. Dosyalarınıza doğrudan bağlantı vermesi için de google.com için izin verin.

Eğer partner siteniz ya da ikinci bir web siteniz varsa: RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC] satırını kopyalayarak çoğaltın. (bu yapılandırma cPanel ve Plesk panellerde de gerçekleştirilebilir; bu paneller üzerindeki yapılandırmalar da Htaccess dosyasını düzenleyecektir)

 


Aşağıdaki Hotlink yapılandırması ise doğrudan URL erişimlerini de reddeder. Eğer direkt linklerin; example.com/image/image.png gibi engellenmesini istiyorsanız aşağıdaki yapılandırmayı kullanın

 


 

Eğer zaten bir CDN servisi kullanıyorsanız; bu yönergeye ihtiyacınız yok demektir. CDN servisleri, genellikle URL Şifreleme metotları kullanır. Büyük web sitelerinde hotlink bu yönerge ile engellenmez; hotlink’i bu yönerge ile -tamamen devre dışı bırakmak- küçük çaplı web sitelerinde kullanılmalıdır

 

Injection / XSS  Değişkenlerini Değiştirin

XSS Enjeksiyon, web sitelerinin yapısının ve görünümünün değiştirilmesine, yasaklanmış bölümlerine / dosyalarına erişimini sağlayan; böylelikle kimlik bilgilerinin çalınmasına ve ip uçlarının toplanmasına izin veren kod hatalarıdır. XSS saldırılarındaki / Siteler Arası Komut Dosyası Enjeksiyonları’ndaki bu global PHP isteklerini aşağıdaki bir kod parçacığı değiştirmeyi deneyin

 


 

MySQL / Veritabanı Enjeksiyon Sorgularını Engelleyin

MySQL Injtection PHP / WordPress sistemlerine yapılan yaygın bir ataktır. Web siteniz, Dedicated Server’da / Adanmış bir sunucuda barınıyorsa, muhtemelen bu sunucudaki mod_security kuralları düzenlenmiştir. Ama web siteniz paylaşımlı bir barındırmada yer alıyorsa bu kuralları değiştirme ve kontrol etme durumunuz yok demektir. Böyle bir senaryoda, MySQL / Veritabanı Enjeksiyon temel deneme girişimlerini / sorgularını aşağıdaki kodla önlemeye çalışın

 

Bazı durumlarda wp-admin.php yolu engellenebilir; sitenize wp-login.php kullanarak giriş yapın


 

XML – RPC Dosyasına Erişimi Engelleyin

XML – RPC, WordPress’in uzaktan veri iletimini sağlayan protokolüdür. Bu PHP dosyası, üçüncü taraf uygulamaların sisteminize erişimine izin verir. Jetpack gibi üçüncü taraf bir uygulama kullanmıyorsanız ve ne yaptığınızdan tam olarak emin değilseniz; XML – RPC DDoS ataklarına da açık hale gelebilirsiniz; böyle bir senaryoda WordPress’in bu özelliğini devre dışı bırakın.

 


 

Yazar Taramalarını Engelleyin

Aslında yaygın ve krtik bir açık meydana getirmese bile -temel bir parola atak girişimi- düşünüldüğünde web sitenizdeki yazarlar (Siz – Administrator dahil) hakkında da bilgiler toplanabilir. Bu taramayı devre dışı bırakarak; hacking metotlarında kullanılan temel ip uçlarından birini daha kapatabilirsiniz

 


 

Htaccess Dosyanıza Yetkisiz Erişimi Engelleyin

Sunucunuz üzerindeki açıklardan; (bunlar yalnızca sunucu üzerinde / web server üzerinde çalışan ve kontrolünüz dışında çalışan eklentilerdeki açıklar da olabilirler) yararlanılarak htaccess dosyasına da müdahale edilebilir ve yetkisiz girişimlere de doğrudan htaccess üzerinden izin verilebilir.

 

Apache Web Server üzerinde çalışan htaccess kodları; ne bu konudaki ne de başka bir platformdaki özelleştirilebilir kod parçacıkları ile sınırlı değildir ve bir sunucu üzerinde kritik özelleştirmelerden, kritik izinlere kadar birçok değişikliği meydana getirebilirler. Gerçi güvenlik prensiplerine dikkat eden barındırma şirketleri, paylaşımlı sunucular üzerindeki bu tür müdahaleleri göz önünde tutarlar; ama yine de aşağıdaki kod parçacığı ile bu dosya üzerinde, uzaktan bir düzenleme izni bulunmadığından emin olun.

 


Kök dizindeki – public_html dizinindeki PHP dosyalarının uzaktan erişimlere açık olmadıklarını URL üzerinde doğrulayın: example.com/wp-activate.php biçiminde direkt URL adreslerine başvurun; wp-signup.php ve diğerleri için. Eğer, açık görünüyorsa, bu dosyaların her birini ayrı olarak aşağıdaki kod parçacığı engelleyin. Benzersiz  yönetici URL’si tanımlanmamış ise wp-login.php için uygulamayın.

 

 

Bir not 

Diğer birçok anlatımlarında olduğu gibi htaccess için de sıradan WordPress rehberlerinde göz doldurmak için opsiyonel yapılandırmalar yer alır. Bunlar genellikle WordPress URL Yönlendirme, IP Adreslerini Engelleme ve Yönetici Paneli İçin İzin Verilecek IP Adreslerini Belirleme gibi fonksiyonlarıdır.

 

WordPress’de URL yönlendirme gereksinimini duyuyorsanız muhtemelen WordPress SEO ile ilgilenmektesiniz ve ihtiyacınız olan şey bir SEO Eklentisi üzerindeki yönergelerdir. Eğer ki eski bir alan adınızı, yeni alan adınıza yönlendirmek istiyorsanız, buna daha sonra başka bir başlık altında ihtiyaç duyacaksınız demektir, çünkü SEO sizin için önemli demektir; bu durumda da htaccess’deki 301 Redirect işlevi yeterli değil demektir.

 

Kullanıcı IP adreslerinin yasaklanması ya da yalnızca bir IP adresine izin verilmesini temel WordPress htaccess yapılandırmasında araya sıkıştırmak; statik IP ve Dinamik IP kavramlarını atlamaktır. İnternet Servis Sağlayıcınız (ISS) tarafından özel olarak atanmış Statik / Sabit IP kullanmıyorsanız bu fonksiyonu tercih etme durumunuz olmayacaktır.

 

Referanslar
httpd.apache.org/docs/current/mod/

 

 


Görünüm

3 yorum

  • vatandaş

    Üstad şöyle joomla, drupal, wordpress cmsleri arasında avantaj ve dezavantalarıyla ilgili teknik bir yazı çıkartabilir misin? birçok şey var nette ama bu işe hakim birisinden takip etmek kullanıcılara seçim yapmayı daha fazla kolaylaştırabilir.

  • Lorraine

    Greetings! Very useful advice in this particular post.
    It’s the little changes which will make the most important changes. Thanks a lot for sharing!

Sadece şu etiketi çalıştırabilirsin <code>