WordPress Güvenlik Önlemleri

İnsanlar günlük yaşantılarında hayatlarını korumak ve güvenliklerini sağlamak amacıyla birçok önlem alıyorlar. Bunlara örnek olarak arabalarına, iş yerlerine güvenlik alarmları taktırmak, giriş kapılarında çelik kapılar kullanmak verilebilir. İnternet üzerinde de mantalite aynıdır. Herkes sahip olduğu websitesinin güvenli bir altyapı üzerine kurulu olduğundan emin olup, içini ferah tutmak ister. Bu makalede WordPress altyapılı günlükler için işe yarayabilecek bir takım güvenlik ipuçları sunacağım

[468×15]

 

Gereksiz Bilgilerin Görüntülenmesini Önleyin

Sorun

WordPress’inizin yönetim paneline giriş yaparken bir hata aldığınız zaman CMS, size nerede hata yaptığınız ile ilgili çeşitli bilgiler verir. Eğer şifrenizi unuttuysanız bu sizin için gerçekten de yararlı bir bilgi olabilir. Ancak günlüğünüzü hacklemeye çalışan biri için de yararlı bir bilgi olabileceğini unutmamakta fayda var. Bu yüzden oturum açma ekranlarındaki hata mesajlarını neden kaldırmıyoruz?

Çözüm

Bu çeşit hata mesajlarını kaldırmanız için temanızın functions.php dosyasını açın ve aşağıdaki tek satırlık kodu PHP kodlarınızın içerisinde uygun bir yere yerleştirip, dosyayı kaydedin.

[php]
add_filter(‘login_errors’,create_function(‘$a’, "return null;"));
[/php]

.htaccess Kullanarak wp-config Dosyanızı Koruma Altına Alın

Sorun

Bir WordPress kullanıcısıysanız wp-config.php dosyanızın ne kadar önemli olduğunu biliyor olmalısınız. Bu dosya ile veritabanınız ile ilgili önemli tüm bilgilere erişebiliyorsunuz. (kullanıcı adı, şifre, sunucu adı vb.) wp-config.php dosyası oldukça kritik bir durumda ve bu dosyayı koruma altına almamız oldukça basit.

Çözüm

.htaccess dosyanız, WordPress’inizi kurduğunuz dosyalar arasında bulunuyor. Bu dosyanın bir yedeğini alın ve dosyayı bir kod editörü (örneğin: Notepad++) ile açın. Ardından şu satırları dosyanıza ekleyip kaydedin.

[php]
<files wp-config.php>
order allow,deny
deny from all
</files>[/php]

İstenmeyen Kullanıcı ve Botları Kara Listeye Almak

Sorun

WordPress çok popüler bir sistem olduğundan websitenizi kendilerine çıkar sağlamak amacıyla rahatsız edecek pek çok kullanıcı ve spam botları bulunmakta. Popüler siteler hergün bu spam yayanlardan nasiplerini almamak için çeşitli yöntemler üretiyorlar. Bunları önleyen çeşitli ek yazılımlar ve eklentiler bulunsa da sorunu kökten çözmek oldukça basit. Erişimi engelleyin!

Çözüm

.htaccess dosyamıza engellemek istediğimiz kullanıcının, spam yorumları yapan botların IP adreslerini yazıyoruz. 123.456.789 kısmını keşfettiğiniz IP adresleri ile değiştiriyoruz. Bu işlemi yapmadan önce yedek almayı unutmuyoruz.

[php]
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789
</LIMIT>[/php]

Açıklama

Apache web sunucuları bu tür işlemler için oldukça kolay yönetilebilir sistemler. Bu kod ile sunucumuza 123.456.789 IPadresli kullanıcının erişimini engellediğimizi söylüyoruz. Farklı IP adresleri de eklemek isterseniz kodu şu şekilde uzatıp, diğer IP adreslerini de ekleyebilirsiniz.

[php]<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789
deny from 93.121.788
deny from 223.956.789
deny from 128.456.780
</LIMIT>[/php]

İçerik Hırsızlarıyla Uğraşmak

Sorun

Websiteniz biraz olsun tanınıyorsa, bazı insanlar sizin özgün olarak ürettiğiniz içeriği, sizden izinsiz olarak kendi sitelerinde yayınlayabiliyorlar. Mutlaka birçoğunuzun başına gelmiştir. Bunun ismi genel anlamda ‘Emek Hırsızlığı‘dır. Daha da önemlisi sizin yazılarınızda kullandığınız resimleri de çekerek, sunucunuzun trafiğinin boş yere harcanmasına neden olmaktadır.

Çözüm

Bu tür içerik hırsızlıkları ile mücadele için .htaccess dosyanıza şu kodları girebilirsiniz. (.htaccess işlemleriniz için daima yedek almanızı öneriyorum)

[php]
RewriteEngine On
# ?site\.com/ bolumunu kendi website adresiniz ile degistirin
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?site\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
# /images/image.jpg kismini gorunecek olan resim ile degistirin
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L][/php]

Bu işlemi yaptıktan sonra sizin sunucunuzda bulunan resimleri yalnıca kendi sitenizde kullanabileceksiniz. Websiteniz üzerinden alınan resimlere karşılık yasakladığınız image.jpg resmi görüntülenecektir. Bu resim yerine düz ve boş bir resim seçerseniz aynı şekilde karşı taraf boş bir resim görecektir.

Zararlı URL İstekleri İçin Bir Eklenti Oluşturmak

Sorun

Hackerlar zayıf gördükleri sitelere saldırmak için çoğunlukla zararlı sorguları websitenize yönlendiriyor. WordPress, otomatik olarak bu tür saldırılar için bir çeşit koruma mekanizması geliştirmiş hali hazırda, ancak yeterli değil.

Çözüm

Aşağıdaki kodları, gelişmiş bir editör ile oluşturun ve blockbadqueries.php şeklinde, PHP uzantısında kaydedin ve wp-content/plugins klasörünüze gönderin. Ardından WordPress Yönetim Paneli’ne girip Eklentiler kısmından aktifleştirin. Artık websiteniz zararlı sorgulardan korunacaktır.

[php]
<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/
Description: Protect WordPress Against Malicious URL Requests
Author URI: http://perishablepress.com/
Author: Perishable Press
Version: 1.0
*/

global $user_ID;

if($user_ID) {
if(!current_user_can(‘level_10’)) {
if (strlen($_SERVER[‘REQUEST_URI’]) > 255 ||
strpos($_SERVER[‘REQUEST_URI’], "eval(") ||
strpos($_SERVER[‘REQUEST_URI’], "CONCAT") ||
strpos($_SERVER[‘REQUEST_URI’], "UNION+SELECT") ||
strpos($_SERVER[‘REQUEST_URI’], "base64")) {
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
}
}
?>[/php]

WordPress Sürüm Numaranızı Gizleyin

Sorun

Bildiğiniz gibi WordPress otomatik olarak sayfa kaynağında ek bir kod ile kullandığınız WordPress sürümünü görüntülüyor. Bu durum, websitesini yeni sürümler çıktıkça güncellemeyen birisi için oldukça zararlı bir hale bürünebilir. Bu yüzden bu kodun görüntülenmesini tamamiyle engellemek oldukça basit.

Çözüm

Aşağıdaki kodu temanızın functions.php dosyasına ekleyip, kaydediyoruz.

[php]remove_action(‘wp_head’, ‘wp_generator’);[/php]

Bu işlemden sonra sayfa kaynağınızın head öncesini kontrol edebilirsiniz.
Varsayılan “admin” Kullanıcısını Değiştirmek

Sorun

WordPress’in 2.x sürümlerinden bu yana kurulumlarda kendi kullanıcı adımızı kendimiz belirleyemiyorduk. Bunun yerine WordPress, bize varsayılan olarak admin kullanıcı adıyla bir hesap oluşturuyor ve bu şekilde bağlanmamıza izin veriyordu, daha sonra biz istersek değiştirebiliyorduk. WordPress 3.0 ile yeni kurulumlarda kendi kullanıcı adımızı kendimiz belirleyebiliyoruz. Hala ‘admin’ olarak kayıtlı kullanıcılar için değişim yapmak oldukça basit.

Çözüm

‘admin’ kullanıcı adınızı henüz değiştirmediyseniz, veritabanınızdan şu SQL sorgusunu çalıştırmanız yeterli olacaktır.

[php]
UPDATE wp_users SET user_login = ‘Yeni’ WHERE user_login = ‘Admin’;[/php]

Dizinlere Erişmeyi Engellemek

Sorun

Barındırma hizmeti sunan çoğu firma, varsayılan olarak alt dizinlere erişilmesine müsaade etmektedir. Eğer site.com/wp-includes adresini çalıştırdığınız zaman içerisindeki dosya ve klasörler görüntüleniyorsa, bu kesinlikle bir güvenlik açığı oluşturacaktır. Bundan kurtulmamız oldukça basit.

Çözüm

.htaccess dosyanıza şu kodu eklemeniz yeterlidir.

[php]Options -Indexes[/php]

Kaynak: smashingmagazine.com