Bu yazımızda .htaccess ile wordpress site güvenliğini sağlamak yollarını anlatacağız.
WordPress site güvenliği detaylı olarak ele alacağız.
WordPress güvenlik önlemleri 2021 sizler için mini güvenlik rehberi olmasını umuyoruz.
.htaccess dosyasını oldukça küçük tutmaya çalıştık kodlardan sonra sitenizde biraz yavaşlama olabilir.
Bu yüzden sadece gerekli güvenlik düzenlemelerini yapacağız.
WordPress Nedir ?
WordPress, kişisel blog siteleri, e-ticaret siteleri, blog sitelerinde sıkça tercih edilen içerik yönetim sistemidir.
İnternette ki sitelerin %42 WordPress alt yapılıdır.
İnsanların tercih etmesinin nedeni güvenilir, hızlı ve kullanımın kolay olmasıdır.
WordPress güvenlik olarak kaliteli bir CMS (İçerik Yönetim Sistemi)dir.
WordPress Resmi Sitesi: https://wordpress.com/tr/
.htaccess Nedir ?
.htaccess ile web sunucusu üzerinden sitenize karşı güvenlik, optimize şeyler yaptığımız yapılandırma dosyasıdır.
Genellikle web sitesinin kök dizininde bulunur.
Bizde bugün sizler ile WordPress site güvenliğini htaccess üzerinden sağlayacağız.
.htaccess Nasıl Oluşturulur ?
Genellikle cpanel üzerinden public_html içerisine girdiğinizde içerisinde bulunur.
Görmek için ayarlardan Sağ üstteki ayarlardan gizli dosyaları göster dediğinizde karşınıza çıkacaktır.
Eğer yoksa:
1- Cpanele girip > dosya yöneticisi > public_html > dosya oluştur > .htaccess
diyerek kaydediyoruz.
Karşımıza çıkmazsa üstte ki gibi sağ üst ayarlardan gizli dosyaları göster diyerek görebiliriz.
Edit yaparak içerisine eklemeler yapabiliyoruz.
.htaccess İle WordPress Site Güvenliğini Sağlamak
1- Kötü niyetli siber korsanlar .htaccess dosyasının içeriğini görmek isteyeceklerdir.
Bizde bu kod ile .htaccess dosyasını dışarıdan erişim ve müdahaleye engel oluyoruz.
# .htaccess dosyasına erişimi engelle
<files .htaccess>
order allow,deny
deny from all
</files>
2- WordPress sitelerin veritabanı bilgileri wp-config içerisindedir.
Aşağıda ki kod ile wp.config.php içerisinde ki veritabanı bilgilerini korumaya alıyoruz.
# Wp-config.php dosyasına erişimi engelle
<Files wp-config.php>
Order Deny,Allow
Deny from all
</Files>
3- Wp-config.php dosyasına ekstra koruma olarak wp-config.php düzenlemesini kapatıyoruz.
Veritabanı bilgilerinizin değiştirilmemesi için public_html içerisine gelip wp-config.php açıyoruz.
Son olarak Wp-config.php içerisinde en altına gelip bir boşluk bırakıp ekliyoruz
define( ‘DISALLOW_FILE_EDIT’, true );
ve kaydedip çıkıyoruz.
Böylece artık kimse veritabanı bilgilerini değiştiremeyecektir.
4- Wp-load.php dosyası da önemlidir bu bölümü de korumaya alıyoruz.
# wp-load.php dosyasına erişimi engelle
<files wp-load.php>
order allow,deny
deny from all
</files>
5- Wp-includes.php dosyası içerisinde wordpress fonksiyonel dosyalar vardır.
Bu dosyayı da korumaya alıyoruz.
#Wp-includes Dosyasını koruma
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
6- Dizin listeme engellemediğiniz taktirde sunucu içerisinde ki gizli ve önemli dosyalarınızı siber korsanlar görür.
Bu yüzden dizin listemeyi iptal etmek önemlidir.
# Dizin listelemeyi iptal et
Options All –Indexes
7- Siber korsanlar xmlrpc.php dosyasına DDOS saldırıları düzenleyerek sitenizi çökertmeye çalışır.
Aşağı da ki kod ile xmlrpc dosyasını koruyoruz.
Herhangi bir ddos atağı yapılırsa direkt olarak boşa çıkacaktır.
# xmlrpc.php istek göndermeyi engelleme
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>
8- WordPress hataları error.log dosyalarına kaydedilir.
Kötü niyetli korsanlar bunu siteniz hakkında bilgi toplamak için kullanırlar.
Bu kod ile error log dosyasına erişimi engelliyoruz.
#Error Log Dosyasını Koruma
<FilesMatch "(\error.log)">
Order deny,allow
Deny from all
</FilesMatch>
9- Sunucu imzasını kaldırarak site güvenliğini sağlıyoruz.
Sunucu imzası siteniz ve sunucunuz hakkında kötü niyetli siber korsanlara bilgi sağlar.
Bu yüzden sunucu imzasını tamamen kaldırıyoruz.
#Sunucu imzası kaldırma
ServerSignature Off
10- XSS açıkları en popüler açıklardan birisidir.
Siber korsanlar sitenize zarar verir.
Bizde bu yüzden XSS açıklarının tamamını engelleyeceğiz.
Siteniz üzerinde manuel XSS denemeleri yapılırsa direkt olarak engellenecektir.
#XSS Açığına karşı koruma 1
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>
11- Xss açıklarında kötü niyetli kodlara karşı filtrelemeye alıyoruz.
Böylece siber korsanlar site üzerinde filtremeler ile karşılaşacak ve XSS açığı denemeleri yapamayacaktır.
#XSS Açına karşı koruma 2
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode.*\\(.*\\) [OR]
RewriteCond %{QUERY_STRING} (\\<|<).*script.*(\\>|>) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\\[|\\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\\[|\\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
12- WordPress sitelerine siber korsanlar sürekli olarak brute force (kaba kuvvet saldırıları) düzenliyor.
Fakat bunun için bir eklenti aracılığıyla admin panel yolunu değiştirebiliriz.
lockdown-wp-admin eklentisini indirelim.
Son olarak istediğiniz isim yolunu yazıp kaydedin.
Artık kaydettiğiniz panel yolu ile sitenize giriş yapabilirsiniz.