WordPress Güvenliği

yazar:

kategori:

Son on yıl içinde WordPress basit bir blog sisteminden çıkıp, dünyada en çok kullanılan içerik yönetim sistemine (CMS) doğru evrimleşti. WordPress’in ulaştığı bu konum ziyaretçilerden, geliştiricilere herkes için iyidir. Ayrıca bir içerik yönetim sisteminin bu kadar gelişmesi bu işten para kazanabilecek geliştiricilerin de artmasıyla alanda yeni bir sektör oluşturup inaktif bir istihdam oluşturur. Yine de bu büyüme sorunlar da açmıyor değildir. WordPress’in bu kadar popüler olması WordPress Güvenliği konusunda bazı sorunların oluşmasına neden olmaya başlamıştır.

WordPress’in kötü niyetli saldırı girişimleri ve “hackleme” faaliyetlerinin bir numaralı hedefi olmasının altında da bu popülerlik yatar. Hackerlar, kişisel web sitelerinden büyük medya organlarının web sitelerine kadar ulaşan içerik yönetim sistemlerinin yönetim panellerine, hostinglerine hatta veritabanlarına erişim sağlayan bir dizi güvenlik açığını bulup yayınladılar ve yayınlamaya devam etmektedirler.

Neyse ki, git gide kötüleşen ve her gün artan hacker topluluğuna karşı WordPress güvenliğini önemli ölçüde artıracak ve hackerların web sitesinin içeriğine, veri tabanına, hostingine sızma girişimlerini engellemek için yapılacak bir takım şeyler var. Bu yazıda bunlardan bahsedeceğiz.

1. WordPress Veritabanı Önekini Değiştirin

Varsayılan olarak her WordPress kurulumu, tablolarını “wp_” önekiyle bir MySQL veritabanına yerleştirir. WordPress genelde “WP” olarak kısaltılır ve bu tablolaların hangi scripte ait olduğu hakkında karışıklık çıkmaması için böyle bir sezgisel yöntem kullanır.

Bununla birlikte, internet korsanları, WordPress’in içeriğinin bulunduğu tabloların varsayılan bu önekle veritabanına ekleyeceğini tahmin edebilir. Bu durumda veritabanı saldırılarında hackerlara açık adres göstermektedir.

wp-config.php dosyasında WordPress’in kullanacağı önek ön tanımlı olarak bulunmaktadır. WordPress kurulumunda ilgili alanı aşağıdaki gibi değiştirmeniz WordPress güvenliği açısından hayati bir dokunuş olacaktır:


/**
* WordPress veritabanı tablo ön eki.
*
* Tüm kurulumlara ayrı bir önek vererek bir veritabanına birden fazla kurulum yapabilirsiniz.
* Sadece rakamlar, harfler ve alt çizgi lütfen.
*/
$table_prefix = 'wp_';

Bu satırda yer alan ‘wp_’ ön ekini herhangi bir şeyle değiştirebilirsiniz. Bu WordPress sitenizin güvenliği için atacağınız ilk adım olacaktır.

2. WordPress Sürüm Numarasını Gizlemek

Her WordPress sürümü, temel WordPress bilgilerini görüntüleyen bir fonksiyonla gelir. Bu fonksiyon <?php wp_head() ?> fonksiyonudur. <head></head> tagları arasında WordPress’e ait sürüm numarasını ifşa etmektedir.

WordPress’in bunu yapmasının nedeni kullanıcıların kullandığı sürümleri istatistiksel olarak öğrenmek ve  geliştirme ekibi olan Auttomattic‘e bilgi aktarmak amaçlıdır.

Ancak internet korsanları bu sürüm numarasına ulaşarak, web sitesinin kullandığı WordPress sürümü için var olan spesifik açık üzerinden web sitesine saldırmayı deneyebilirler. WordPress’te açıklar genellikle bir sürüme ait olur. Bulunan açıklar güncellemeyle kapatılır. Ancak güncelleme yapmayan web siteler ilgili açık için saldırıya açık hale gelirler.

Bu sürüm bilgisi <?php wp_head() ?> fonksiyonu içinden çıkarılabilir. Bunu yapmak için tema dosyanız içerisinde yer alan functions.php dosyasının en altına aşağıdaki kodu yazıp kaydettikten sonra sunucunuza tekrar yükleyerek WordPress güvenliği için bir adım daha atmış bulunursunuz.

remove_action ( 'wp_header' , 'wp_generator' );

3. Hatalı Girişleri Engelleme

Eski bir saldırı yöntemi olan giriş denemelerini engellemek gerekir. İnternet korsanları, saniyede onbinlerce giriş denemesi yapabilecek botlar hazırlarlar ve bir çok kullanıcı adı – parola kombinasyonları deneyerek yönetim panelinize erişim sağlamaya çalışacaktır. WordPress’in kullanıcıları zayıf parola kullanımından caydırmayı geliştirmesi sonucu, bu saldırı yönteminin tutması çok düşük ihtimal olsa da WordPress güvenliği açısından sorun oluşturmaması için önlem almak gerekmektedir.

Bu durumun önüne geçmek için Login LockDown eklentisini kullanabilirsiniz. Bu eklenti ile kullanıcıların hatalı giriş sayısını belirleyebilir, belirlenen hatalı giriş sonucu istediğiniz sürede kullanıcıların girişini engelleyebilirsiniz. Eklenti başarısız giriş denemelerini IP adresi üzerinden kaydettiğinden bot saldırılarına karşı daha etkilidir.

4. Yönetici Kullanıcı Adını Değiştirme

WordPress standart kurulumunda yönetici kullanıcı adını admin olarak tanımlar. Yukarıda bahsettiğimiz bot saldırılarında kullanıcı adı ve – parola kombinasyonlarında internet korsanlarının kullanıcı adınızı tahmin etmesi başarı oranlarını %50 artıracaktır. Bu nedenle kullanıcı adınızın admin, administrator, yonetici vb. kolay tahmin edilemeyecek kullanıcı adlarından seçmeniz WordPress güvenliği açısından etkili olacaktır.

5. WordPress’i Güncel Tutun

WordPress genellikle bir kaç haftada veya ayda bir yeni bir günelleme yayınlar. Bu güncellemeler genellikle küçük güncellemeler ve güvenlik yamalarıdır. WordPress geliştirme ekibi güncel sürümde bulduğu güvenlik açıklarını bu güncellemeler ile kapatır ve WordPress güvenliği ve işlevselliğini optimum seviyede tutmaya çalışır. WordPress önemli güvenlik güncellemelerini otomatik olarak da yapabilmektedir. Yine de WordPress’in başlangıç ekranında güncellemeleri takip ederek güncelleme yayınlandıktan sonra en kısa zamanda WordPress güncellemenizi yaparak sitenizi daha güvenli tutun.

6. wp-config.php Dosyanızı Gizleyin

WordPress dosyalarını .htaccess dosyası ile gizleyebilirsiniz. Bu dosya WordPress’in uzun vadeli güvenliğini çeşitli şekillerde sağlama için gereklidir. Birkaç basit kod satırı kullanara “.htaccess” dosyası, dosya üzerine uygun dosya izinleri verilmemiş olsa bile, genel görümünden tamamen gizlenebilir. Özellikle veritabanı bilgileri, API keyleri gibi WordPress güvenliği için çok önemli bilgiler içeren wp-config.php dosyasını gizlemek çok önemlidir.

Aşağıdaki satırları web sitenizin ana dizininde bulunan .htaccess dosyasına ekleyiniz. Eğer böyle bir dosya yoksa manuel olarak oluşturup içine aşağıdaki kodları ekleyip kaydettikten sonra tekrar yerine taşıyınız.

<Files wp-config.php>
order allow,deny
deny from all
</Files>

7. Dosya İzinlerini Kontrol Edin

WordPress düzgün çalışabilmesi için çok geniş dosya izinlerine ihtiyaç duymaz. WordPress bütün içerik kayıtlarını veri tabanı üzerinden gerçekleştirdiği için dosyalara herhangi bir yazma işlemi uygulamaz. Bu nedenle dışarıdan erişim sağlayacak olan 777 CHMOD değer WordPress için gereksizdir. FTP ile web sitenizin dizinine ulaşarak klasörler için 755 dosyalar için de 644 değerlerini seçerek dışarıdan erişimi kapatabilirsiniz.

8. .htaccess Dosyasını Gizleyin

Çoğu geliştirici ve yazılımcı bunu bilmez, ancak .htaccess dosyasını yine .htaccess dosyası ile gizleyebilirsiniz. Bu dosyayı gizlemek için aslında wp-config.php dosyasını gizlemek için kullanılan yöntemle oldukça benzerdir. .htaccess dosyasına aşağıdaki kodları girin ve kaydettikten sonra tekrar yerine taşıyınız.

<Files .htaccess>
order allow,deny
deny from all
</Files>

9. Boş HTML Dosyaları Kullanın

Standat bir WordPress kurulumunda temaların ve eklentilerin bulunduğu klasörlerin yeri bellidir. Warez veya kötü amaçlı eklentilerin ve temaların bir dizi XHTML ve CSS tabanlı güvenlik açıklarından içeri sızmak için bu dizinleri kontrol ederler ve daha sonra erişmek için bunları kullanırlar. Bu önlemek aslında oldukça kolaydır.

WordPress dizinlerine boş bir index.html dosyası oluşturup, title ve body alanlarına “Sınırlı Erişim” gibi bir metin yazın. Bu durum güvenliği %100 kapatmasa da, internet korsanlarının gözünde kolay bir site olmaktan çıkacak, onlar daha kolay hacklenebilir site arayışına girerken web siteniz saldırıdan kurtulacaktır.

10. WordPress Güvenliği için Sürekli Yedek Alın

Web sitenizin saldırılardan veya yanlış yaptığınız bir şey sonucu web sitenizi çökmeden kurtaracak en önemli ve en etkili yol ise sürekli olarak web sitenizin yedeğini almaktır. Cpanel, Plesk gibi back-end yönetim panelleri üzerinden sürekli yedek alın. Her hangi bir saldırı veya hatalı işlem sonucu oluşacak sorunlardan kurtulmak için bu yedekleri tekrardan yükleyin.


Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir