

İ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…
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.
1 | add_filter('login_errors',create_function('$a', "return null;")); |
.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ü ile açın. Ardından şu satırları dosyanıza ekleyip kaydedin.
1 2 3 4 | <files wp-config.php> order allow,deny deny from all </files> |
İ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.
1 2 3 4 5 | <Limit GET POST PUT> order allow,deny allow from all deny from 123.456.789 </LIMIT> |
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 IP adresli 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.
1 2 3 4 5 6 7 8 | <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> |
İç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)
1 2 3 4 5 6 | RewriteEngine On # ?site\.com/ bolumunu kendi website adresiniz ile degistirin RewriteCond %{HTTP_REFERER} !^http://(.+\.)?site\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ # /images/nohotlink.jpg kismini gorunecek olan resim ile degistirin RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L] |
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 nohotlink.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. İstediğiniz resmi seçmek size kalmış. Hayal gücünüzü kullanın!
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?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; } } } ?> |
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.
1 | remove_action('wp_head', 'wp_generator'); |
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.
1 | UPDATE wp_users SET user_login = 'Yeni' WHERE user_login = 'Admin'; |
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.
1 | Options -Indexes |
Yukarıda saydığım 8 yöntem işinizi fazlasıyla görecek yegane yöntemler. WordPress’te güvenlik için pek çok eklenti ve yöntem bulunmakta. Bunları da sonraki yazılarda paylaşmayı düşünüyorum.
Faydalı olması dileğiyle
Kaynak: smashingmagazine.com
Anonim
Çok başarılı bir yazı olmuş. Ellerine sağlık Hüseyin. Emek hırsızlarına karşı alınan önlem çok hoşuma gitti.
Onur
Süpersin Hüseyin abi.
aska_surgun
waLLa mükemmeL emeğine sağlık çok hayırlı faydaLı bir konu
Tuna
Saolun hocam yararlı bir kaynak olmuş fakat wp-config’i gizlemek için yaptığımız o şey (.htacess’e kod eklemek) neyi önlüyor ?
Hüseyin Emanet
@Tuna,
wp-config için eklediğimiz .htaccess kodu, dosyaya direk erişmek isteyenlere hata mesajı vermek için.
NewWpThemes
Zararlı URL İstekleri İçin direk yukleyebileceginiz bir plugin var: http://wordpress.org/extend/plugins/block-bad-queries/
Emre
Merhabalar, öncelikle böyle bir yazı için size teşekkür ederim. Fakat benim iki yerde sorunum oldu.
functions.php yi düzenlediğim ( yukarıda verdiğiniz kodları eklediğim zaman ) sitem açılmıyor ve hata veriyor. Yardımcı olur musunuz ?
İyi çalışmalar.
Hüseyin Emanet
@Emre,
Merhaba Emre Bey, şu kodu eklemeyi dener misiniz functions.php dosyanıza?
Emre
Dediğinizi yaptım fakat yine hata verdi.
Görkem Kara
Hocam öncelikle yazı çok güzel olmuş. Ancak bir sorum olacak. Bu resim engelleme güzel ama ben sadece yazıda kullandığım resimlerin çalınmasını engellenmesini istiyorum. Çünkü mesela direk ana dizinde bulunan bir banner resmi var. Verdiğiniz kodu eklediğimde bu ana dizinde bulunan banner damı diğer sitelerde çalışmayacak?
Hüseyin Emanet
@Görkem Kara,
Şöyle ki; eğer bu resmin URL’sini sizin websitenizden çağırırsa kişi, kullanmak istediği resim yerine sizin “YASAK” resminiz görüntülenecektir. Kaynak olarak sizin websitenizi kullanamaz yani. Umarım açıklayabilmişimdir.
Furkan Çetin
Hocam Elinize Sağlık Anlatımlarınız Çok Güzel Olmuş. Bilişim Hayatınızda Başarılar Dilerim..
haki
Çok teşekkürler. Tam olarak .htaccess içinde nereye ekleyeceğimiz farkedermi?
Hüseyin Emanet
@haki,
Hayır, farketmez.
Okan
Süpersin, dediklerinin hepsini yaptım. Bu site işlerinde en çok korktuğumda emeklerimin boşa gitmesidir. İnşallah bu sorunlarla uğraşmayacağım. Neyse çalıntı içerik ile ilgil resmimi hazırladım.
http://bilgi-n.com/wp-content/uploads/alintiicerik.gif