Dünya genelinde milyonlarca sitenin altyapısı için kullanılan WordPress, kullanım ve düzenleme kolaylığı kadar güvenli bir sistem olması nedeniyle de tercih ediliyor. Her sürümü binlerce geliştirici tarafından test edilerek açıkları raporlanan ve sürekli güncellenerek güvenli olmayı başaran WordPress’in daha güçlü ve güvenli olması için dikkate alınması gereken bazı noktalar var. Bu yazıda WordPress için genel kabul görmüş güvenlik önlemlerinin önemli olanlarını bulacaksınız.
.htaccess dosyasını etkili kullanın
Aşağıdaki kodu .htaccess dosyasına ekleyerek sitenizin wp-config.php dosyasına tarayıcı üzerinden erişimi engelleyebilirsiniz.
<files wp-config.php> order allow,deny deny from all </files>
Bazı siteler, başka sitelere ?ref=alanadi şeklinde kendi site adreslerini referans veren bağlantılarla hedef sitenin spamcı site damgası yemesine neden olan saldırılar yaparlar. Bu sitelerden gelen ziyaretleri kontrol etmek için aşağıdaki kodu kullanabilirsiniz.
RewriteCond %{THE_REQUEST} \?(ref=.*)?\ HTTP [NC] RewriteRule .? https://tercan.net%{REQUEST_URI}? [R=301,L]
Bir sonraki ana maddede ?ref=alanadi saldırılarını robots.txt dosyası ile engellemek için örnek bir kullanım da mevcut.
Script injection yolu ile yapılabilecek saldırılardan korunmak için .htaccess dosyanıza aşağıdaki kodları ekleyebilirsiniz.
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [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]
Son olarak içinde giriş (index) dosyası bulunmayan dizinlerinizin içeriğinin görüntülenmesini engelleyin. Bunun için .htaccess dosyasına aşağıdaki kodu eklemelisiniz.
Options All -Indexes
robots.txt kullanın
robots.txt ile wp-admin, wp-includes ile wp-content dizininde bulunan bazı klasörlerin içeriklerinin ve ?ref=alanadi şeklindeki bağlantıların indekslenmesini engelleyebilirsiniz.
# robots.txt for https://tercan.net/ User-agent: * Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /*ref=*
WordPress versiyon bilgisini kaldırın
Daha önce yazdığım WordPress versiyon bilgisini değiştirmek veya kaldırmak başlıklı yazıyı inceleyebilirsiniz.
Eklentilerin versiyon bilgilerini kaldırın
Genelde WordPress eklentileri, kullandıkları JavaScript ve CSS dosyalarına eklenti sürümlerini parametre olarak eklerler. Tavsiye edilen sistemi güncel tutmak olsa da bazen eklentilerin güncelleme hızına yetişmek mümkün olmuyor. Bu durumda da siteler, eklentilerin eski versiyonlarında olabilecek açıkların tespit edilip saldırı amaçlı kullanılabilmesi riski ile karşı karşıya kalabiliyor. Ben bu tür bir riski göze almaktansa aktif temanın functions.php dosyasına aşağıdaki kodu ekleyerek eklentilerin JavaScript ve stil dosyalarından versiyon bilgilerini kaldırmayı tercih ediyorum.
function _remove_script_version( $src ) { $parts = explode( '?', $src ); return $parts[0]; } add_filter( 'script_loader_src', '_remove_script_version', 15, 1 ); add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
Farklı bir veritabanı öneki (prefix) kullanın
Sitenin kurulumu esnasında wp-config.php dosyasındaki standart tablo önekini farklı bir önek ile değiştirmeniz şiddetle tavsiye edilir. Bunun için wp-config.php dosyanızda bulunan
$table_prefix = 'wp_';
yerine aşağıdaki gibi bir önek tanımlayabilirsiniz.
$table_prefix = 'wp_YgnyeSvQ_';
Tablo öneki değiştirme işlemi yayında olan bir site üzerinde de yapılabilir fakat bu biraz uzmanlık bilgisi gerektiren bir işlemdir ve risklidir. Bu nedenle işlem öncesi yedek almanızı tavsiye ederim. Mevcut sitenizin yedeğini aldıktan sonra 6 Simple Steps to Change Your Table Prefix in WordPress adresindeki yönergeleri takip ederek tablo önekinizi değiştirebilirsiniz.
Yazılarda görüntülenecek ismi kullanıcı adından farklı yapın
Tek yazarlı bloglarda buna ihtiyaç olmasa da birden çok yazarı olan sitelerde yazıların altına yazının kimin tarafından yazıldığının belli olması için yazar ismi yazdırılır. Özellikle site üzerinde tam erişimi olan kullanıcıların giriş bilgilerinde kullandıkları kullanıcı adının burada görünmesi deneme – yanılma ile şifre tahmini yapan sistemlerin işini oldukça kolaylaştırır. Bu tür sistemler, hem kullanıcı adı hem de şifre tahmini yapmak yerine sadece şifre tahmininde bulunarak daha hızlı sonuca giderler. Bunu engellemek için aşağıdaki resimde de görebileceğiniz gibi kullanıcı adınız harici bir isim belirleyip bunu kullanabilirsiniz.
Yazar profil sayfaları aktif olan sistemlerde bağlantıdan yola çıkarak kullanıcı adını tespit etmek mümkün olduğundan yazar bağlantısının da değiştirilmesi gerekir. Bunun için de Edit Author Slug isimli eklentisini kullanabilirsiniz. Eklentiyi kurduktan sonra profil sayfanıza girip aşağıdaki ekranda da görüleceği gibi yazar sayfanızın kalıcı bağlantısını değiştirebilirsiniz.
Ve diğerleri
- Hem WordPress yazılımınızı hem de eklentilerinizi sürekli güncel tutun.
- Güçlü bir parola seçin. Güçlü ve tahmin edilmesi zor bir parola oluşturmak için TÜBİTAK – BİLGEM tarafından hazırlanan Güçlü Parola Oluşturma başlıklı yazıyı okuyabilirsiniz.
- Dosya ve klasörlerinizin yazma izinlerini kontrol edin. Standart olarak dosyaların yazma izni 644, klasörlerin yazma izni 755 olmalıdır. Resim vs. gibi dosyalarınızı yükleyeceğiniz klasöre yazma izni olarak 777 vermelisiniz.
- Benzersiz doğrulama anahtarları tanımlayın. Bu işlemi https://api.wordpress.org/secret-key/1.1/salt/ adresinden alacağınız kodları wp-config.php dosyanızda ilgili kodlarla değiştirerek yapabilirsinz.
- Hem veritabanınızın hem de tüm sitenizin yedeğini periyodik olarak alın.
SON SÖZ:
Her şeyden önemlisi sitenizi adam gibi bir yerde barındırın. Zira sunucu güvenliği sağlanmadıkça en güvenli sistemlere bile kolayca zarar verilebilir.
Faydalı bilgiler içeren değerli bir döküman olmuş. emeğinize sağlık.
Tercan hocam eline emeğine sağlık çok başarılı ve bilgilendirici bir makale olmuş. dahası son paragraf tam anlamıyla son noktayı koymuş. evet haklısınız web sitenizi barındırmak için sağlam ve kaliteli bir hosting firması ile çalışmalısınız. Aksi halde sizden kaynaklanmayan sunucu açıkları yüzünden sıkıntı yaşarsınız. iyi çalışmalar diliyorum.