WordPress Güvenlik Önlemleri /Web Site Güvenliği için Yapılması Gerekenler
WordPress güvenliği, her web sitesi sahibi için dikkate alınması gereken önemli bir konudur. Bu kılavuzda, web sitenizi bilgisayar korsanlarına ve kötü amaçlı yazılımlara karşı korumanıza yardımcı olacak en iyi “WordPress güvenlik önlemleri“ni paylaştık…
WordPress Güvenlik Önlemleri Nasıl Alınır?
WordPress genel olarak oldukça güvenli bir yazılım olmasına ve yüzlerce geliştirici tarafından düzenli olarak denetlenmesine rağmen, açık kaynaklı bir platform olduğundan ve bazen kullanılan eklenti ve temalardan kaynaklı olarak güvenlik açıkları oluşabiliyor. Riskleri tamamen ortadan kaldırmak mümkün olmasa da, WordPress güvenlik önlemleri ile bu riskleri en aza indirmek mümkün.
İnternet live stats (İnternet canlı istatistikleri)‘ne göre her gün “100 bin“den fazla web sitesi saldırıya uğruyor. Bu sitelerin arasında yer almamak için (ya da riski düşürmek için) WordPress güvenlik önlemleri almak kritik öneme sahip.
İşte 2020 / 2021 için en güncel WordPress güvenlik önlemleri listesi:
1. Güvenilir ve nitelikli hosting firmaları seçin
Web siteniz veya işletmeniz için hosting seçimi site güvenliğinin can damarıdır desek abartmış olmayız. Bu nedenle WordPress güvenlik önlemleri arasında ilk sıradadır.
Bir web site veya blog açmak için ilk iş hosting seçimi yapmaktır. İşte tam bu noktada, yani daha yolun başındayken iyi bir hostinge yatırım yapmanız yararınıza olacaktır. Seçeceğiniz firma en son PHP ve MySQL sürümünün yanı sıra, bir güvenlik duvarı, günlük yedekleme, kötü amaçlı yazılım taramaları, DDOS önleme tedbirleri ve 7/24 güvenlik izleme gibi önemli hizmetleri içermelidir.
Bu şartları karşılayan bir hostingin maliyeti diğerlerine göre daha yüksek olabilir ama yine de web sitenizin güvenliği ve sağlıklı işleyişi için buna değer.
2. WordPress güvenliği için SSL kullanın
SSL (Secure Socket Layer), veri aktarımını şifreleyen bir protokoldür. SSL’yi etkinleştirdiğinizde, web siteniz HTTP yerine HTTPS olarak açılır ve URL’nin önünde sitenin güvenli olduğunu belirten bir asma kilit sembolü bulunur.
SSL ile sadece WordPress güvenlik önlemi almış olmazsınız, aynı zamanda arama motoru sıralamanız da olumlu etkilenir. (Google https’in resmi olarak bir sıralama faktörü olduğunu belirtmiştir!)
SSL sertifikaları genellikle sertifika yetkilileri tarafından verilir ve genellikle yüksek fiyatları vardır. Ancak, kar amacı gütmeyen bir kuruluş olan Let’s Encrypt ile ücretsiz SSL kullanmanız da mümkün. Hatta artık birçok barındırma şirketi, müşterileri için ücretsiz SSL sertifikası sunuyor.
3. Sitenizi düzenli olarak yedekleyin
Sitenizin güvende kalmasını sağlamak için ne kadar önlem alırsanız alın, yapmanız gereken en önemli şey düzenli olarak yedek almaktır. Sitenizi saldırganlara kaptırırsanız, aldığınız yedekler sayesinde durumu en az hasarla atlatabilirsiniz. Yani ilk savunmanız bu yedekler olacaktır.
“WordPress Yedek Alma: En İyi Yedekleme Eklentileri ve Manuel Yedekleme Yöntemleri” başlıklı içerikte gerekli tüm detayları bulabilirsiniz.
4. WordPress sürümünü, eklentilerinizi ve temalarınızı güncel tutun
Güncellenmemiş Wp sürümü, eklenti ve temalar büyük güvenlik açıkları yaratabilir. WordPress, düzenli olarak bakımı yapılan ve güncellenen açık kaynaklı bir yazılımdır. Her yeni sürüm çıktığında birçok hata ve güvenlik açığı giderilir. Aynı şekilde tema ve eklentilerinizin de her zaman güncel sürümünü kullandığınızdan emin olun. Güncelleme yapmazsanız siteniz ciddi risk altında olur.
Peki güncelleme nasıl yapılır?
WordPress, tema ve eklentiler için yeni bir güncellemeniz varsa, bunları yönetim paneli “Güncellemeler” kısmından görebilir ve buradan tek tıkla güncelleyebilirsiniz.
***Kullanmadığınız tema ve eklentileri mutlaka kaldırın.
5. Güçlü parolalar kullanın
Zayıf parolaların tahmin edilmesi kolaydır. Bilgisayar korsanları, kaba kuvvet saldırıları olarak da bilinen girişleri zorlamak için özel bir yazılım kullanır. Bu nedenle, WordPress güvenliği için benzersiz güçlü parolalar oluşturmak önemlidir.
Güçlü bir parola bulmak için büyük ve küçük harflerin, rasgele sayıların ve simgelerin kombinasyonunu kullanın. Ayrıca şifrenizi birkaç ayda bir değiştirmeyi de unutmayın. Sadece WordPress hesabınıza giriş için değil, aynı zamanda barındırma hesabı, FTP hesapları, veritabanı ve özel e-posta hesaplarınız için de mutlaka güçlü parolalarınız olsun.
6. İki faktörlü kimlik doğrulama kullanın
Parolanız ne kadar güvenli olursa olsun, yine de risk devam eder. İki faktörlü kimlik doğrulama, oturum açmak için yalnızca şifrenize değil, ikinci bir yönteme de ihtiyaç duyduğunuz iki aşamalı bir süreci içerir.
Genellikle bir SMS, telefon araması veya zamana dayalı tek seferlik şifre ile giriş onayı yapmak en iyi WordPress güvenlik önlemleri arasındadır. Hatta çoğu zaman %100 etkilidir.
Bunun için aşağıdaki eklentilerden birini kullanabilirsiniz:
- Duo Two-Factor Authentication
- Two Factor Authentication
- Google Authenticator
7. CAPTCHA ile WordPress giriş güvenliği
CAPTCHA kullanmak, web sitenize kaba kuvvet saldırılarını önlemenin basit ama etkili bir yoludur.
Belirli sayıda başarısız oturum açma girişiminin ardından, kullanıcının insan mı yoksa bot mu olduğunu belirlemek için bir CAPTCHA oluşturulur. CAPTCHA’lar botlar tarafından okunamayacak şekilde tasarlanmıştır. Botlar CAPTCHA’yı çözene kadar oturum açamazlar.
8. WordPress girişi için kullandığınız kullanıcı adını gizleyin
Kullanıcı adınızı öğrenmek isteyen kişinin tarayıcıya şu basit url’yi girmesi yeterlidir: siteadi.com/wp-json/wp/v2/users
Bunu önlemek için functions.php
dosyanıza aşağıdaki kod parçacığını girin. Bu kod ile kullanıcı listesi gizlenir ve url’yi girenlere bir hata mesajı görünür.
add_filter( 'rest_endpoints', function( $endpoints ){ if ( isset( $endpoints['/wp/v2/users'] ) ) { unset( $endpoints['/wp/v2/users'] ); } if ( isset( $endpoints['/wp/v2/users/(?P<id>[\\\\\\\\d]+)'] ) ) { unset( $endpoints['/wp/v2/users/(?P<id>[\\\\\\\\d]+)'] ); } return $endpoints; });
9. WordPress giriş url’nizi değiştirin
WordPress güvenlik önlemleri almanın bir diğer önemli adımı da WordPress giriş url’sini değiştirmektir.
Varsayılan olarak, alan adınızın sonuna /wp-login.php
veya /wp-admin/
ekleyen herkes WordPress giriş sayfanıza ulaşabilir. URL’yi değiştirerek kendinizi daha az hedef haline getirebilir ve kaba kuvvet saldırılarına karşı daha iyi korunabilirsiniz. Bu WordPress güvenliği için büyük bir çözüm yolu olmasa da, web sitenizi korumak için diğer WordPress güvenlik önlemleri ile birlikte kullanabileceğiniz bir tedbirdir.
WordPress giriş url’nizi değiştirmenizin en kolay yolu bir eklenti kullanmaktır (özellikle bu işte yeniyseniz). Kullanabileceğiniz en iyi eklentilerden biri de WPS Hide login eklentisidir. Ayrıca başarısız giriş denemelerini sınırlandırmak için de Login Lockdown plugin eklentisini kullanabilirsiniz.
10. Güvenlik sorularıyla WP giriş ekranını koruyun
WordPress giriş ekranına güvenlik soruları ekleyerek yönetim paneline geçişi zorlaştırabilirsiniz. Bunu yapmanın en kolay yolu ise WP Security Questions gibi bir eklenti kullanmaktır. Eklenti ayarlarını yapılandırmak için Ayarlar »Güvenlik Soruları sayfasını ziyaret edip kendinize göre düzenlemeler yapabilirsiniz.
11. WordPress sürümünü gizleyin
Bir bilgisayar korsanının, bilinen WordPress güvenlik açıklarına sahip herhangi bir dosyanızın olup olmadığını öğrenmesinin bir yolu da, hangi WordPress sürümünü kullandığınızı görmesidir. Eğer eski bir sürüm kullanıyorsanız, bu durum sitenizi savunmasız hale getirebilir.
Bilgisayar korsanları, temel WordPress kurulumunun önceki sürümünde var olabilecek herhangi bir güvenlik açığından yararlanabilir. Bu nedenle, kullandığınız WordPress sürümünü gizlemeniz faydalı olacaktır.
Bunun için aşağıdaki kodu function.php dosyanıza eklemeniz yeterlidir:
function wp_version_remove_version() { return ''; } add_filter('the_generator', 'wp_version_remove_version');
12. Dosya düzenlemeyi devre dışı bırakın
Tema ve eklenti dosyalarınızı doğrudan WordPress yönetici panelinden düzenleyebilirsiniz. Ancak bu özellik ciddi güvenlik riskleri doğurabilir. Bu nedenle dosyalarınızı doğrudan Wp panelden düzenlemeyi engellemenizi öneririz.
Bunu yapmak için wp-config.php
dosyanıza aşağıdaki kodu eklemeniz yeterli olacaktır.
// Disallow file edit define( 'DISALLOW_FILE_EDIT', true );
cPanel’e giriş yapın ve “Dosya Yöneticisi
“ne geçin. “public.html
” klasöründe “wp-config.php
“yi bulun ve sağ tıkla “Düzenle
” seçeneğine tıklayın. Yukarıdaki kodu dosyanın sonuna ekleyip sayfayı kaydedin.
13. WordPress veritabanı önekini değiştirin
WordPress güvenliği önlemlerinden bir diğeri de veritabanı önekini değiştirmektir.
Varsayılan olarak, veritabanınızdaki tüm tablolar için wp_ öneki kullanır. Varsayılan ön eki kullanmak, site veritabanınızı SQL enjeksiyon saldırılarına açık hale getirir. Bunu değiştirmeniz güvenliğinizi biraz daha artıracaktır. Örneğin wp_ yerine shfwp_
, mywp_
, wpdlt_
vs gibi rasgele bir önek belirleyebilirsiniz.
İlk kez WordPress kurulumu yaptığınızda veritabanı önekini belirleyebilirsiniz. Ancak bunu yapmadıysanız halihazırda wp_ olarak bulunan veritabanı önekini yine de değiştirebilirsiniz. Bu işlem risklidir ve doğru yapılmadığı takdirde sitenizi tamamen bozabilir. Bu nedenle eğer WordPress’e yeterince hakim değilseniz manuel düzenleme yerine All in One WP Security and Firewall gibi bir güvenlik eklentisi kullanmanızı şiddetle tavsiye ederiz!
14. WordPress’te XML-RPC’yi devre dışı bırakın
XML-RPC, WordPress sitenizi web ve mobil uygulamalara bağlamanıza yardımcı olsa da kaba kuvvet saldırılarını önemli ölçüde artırabilir. Bu nedenle XML-RPC kullanmıyorsanız, devre dışı bırakmanızı öneririz. Aşağıdaki kodu .htaccess
dosyanıza eklemeniz yeterli olacaktır:
Apache’de XML-RPC’yi engelle
<Files xmlrpc.php> order deny, allow deny from all allow from 123.123.123.123 </Files>
Nginx’te XML-RPC’yi engelle
location = /xmlrpc.php { deny all; }
Ayrıca, “XML-RPC Nedir, Nasıl Devre Dışı Bırakılır” başlıklı kılavuzumuzda yer alan diğer seçeneklere de göz atabilirsiniz.
15. En son PHP sürümünü kullanın
PHP sürümünü güncel tutmak da, WordPress site güvenliği için oldukça önemlidir. Her PHP sürümü çeşitli güvenlik açıklarını düzelten desteğe sahiptir. Maksimum güvenlik sağlamak için sitenizin en son PHP sürümü tarafından desteklendiğinden emin olun.
16. PHP hata raporlamasını devre dışı bırakın
Hackerlar hata mesajlarını kötü amaçlı kullanabilirler. Örneğin, bir tema veya eklentiden kaynaklanan bir hata, sunucu yolunuzu görüntüleyebilir.
Hata raporlamayı devre dışı bırakmak için, aşağıdaki kodu wp-config.php
dosyanıza ekleyin :
error_reporting (0); @ini_set ('display_errors', 0);
Ayrıca, her başarısız giriş denemesinde, giriş sayfanızdaki hata mesajları hackerlar için oldukça kullanışlıdır.
functions.php
dosyanıza aşağıdaki kod satırını ekleyerek bunları kaldırabilirsiniz:
function no_wordpress_errors(){ return 'Something is wrong!'; } add_filter( 'login_errors', 'no_wordpress_errors' );
17. Dizin listelemeyi devre dışı bırakın
Dizin tarama, başkaları tarafından dosyalarınıza bakmak, görüntüleri kopyalamak, dizin yapınızı ve diğer bilgileri bulmak için kullanılabilir. Ayrıca, bilgisayar korsanları güvenlik açıkları bulmak için dizin taramayı kullanabilir. Bu nedenle bu özelliği kapatmanızı şiddetle tavsiye ederiz.
Bunun nasıl yapılacağıyla ilgili gerekli detayları içeren “WordPress’te Dizin Listelemeyi Devre Dışı Bırakma” başlıklı yazımıza bakabilirsiniz.
18. wp-config.php dosyanızı koruyun
Wp-config.php dosyası sitenizdeki en önemli, aynı zamanda en savunmasız dosyalardan biridir. Oldukça hassas veriler içerir. Bu dosyayı mutlaka korumaya almak gerekir.
Bunu yapmanın en basit yolu ise, wp-config.php
dosyasını WordPress kök dizininizin bir adım üstüne taşımaktır.
Ayrıca aşağıdaki kodu .htaccess
dosyanıza ekleyerek de dosyaya erişilmesini engelleyebilirsiniz:
<Files wp-config.php> order allow,deny deny from all </Files>
19. Diğer hassas dosyalara erişimi engelleyin
WordPress kurulumu sadece wp-config.php dosyasını değil, install.php, readme.html dosyaları gibi birkaç hassas dosya daha içerir. Bu dosyalar başkalarının erişimine kapalı olmalıdır.
Yine burada en iyi dostumuz olan .htaccess
dosyası devreye giriyor. Aşağıdaki kodları bu dosyaya ekleyerek hassas dosyalarınızı yetkisiz erişimlerden gizleyebilirsiniz:
<files .htaccess> Order allow,deny Deny from all </files> <files readme.html> Order allow,deny Deny from all </files> <files license.txt> Order allow,deny Deny from all </files> <files install.php> Order allow,deny Deny from all </files> <files error_log> Order allow,deny Deny from all </files>
20. Etkin olmayan oturumları otomatik olarak kapatın
Etkin olmayan oturumlar bir güvenlik riski oluşturabilir. Bu nedenle, bu tür oturumları otomatik olarak kapatmak da WordPress güvenlik önlemleri arasına dahil edilmelidir.
Inactive Logout gibi bir eklenti yardımıyla, belirli bir süre etkin olmayan kullanıcı oturumlarını otomatik olarak kapatabilirsiniz.
21. WordPress güvenlik duvarını etkinleştirin
Bir diğer kritik WordPress güvenlik önlemi de “web uygulaması güvenlik duvarı (WAF)” kurmaktır. WAF’ınız, kötü niyetli saldırıları sitenize ulaşmadan önce engelleyen ilk savunma hattıdır.
WordPress güvenlik duvarı eklentileri, web sitenizi kaba kuvvet ve DDoS saldırıları gibi durumlara karşı korur. Sucuri, SiteLock, Wordfence, Cloudflare gibi eklenti ve uygulamalarla bu soruna karşı tedbir alabilirsiniz.
22. En son HTTP güvenlik başlıklarını ekleyin
WordPress güvenlik önlemleri için bir diğer önemli detay da http güvenlik başlıklarından faydalanmaktır. Bunlar genellikle web sunucusu düzeyinde yapılandırılır ve tarayıcıya sitenizin içeriğini işlerken nasıl davranması gerektiğini söyler.
HTTP güvenlik başlıkları, saldırıların ve güvenlik açıklarının azaltılmasına yardımcı olur.
WordPress web sitenizi securityheaders.io aracıyla tarayıp şu anda sitenizde hangi HTTP güvenlik başlıklarının bulunduğunu görebilirsiniz. Eksik http başlıkları için aşağıdaki satırları .htaccess
dosyanıza ekleyebilir ya da bunu daha kolay hale getirmek için HTTP headers to improve web site security eklentisini kullanabilirsiniz.
# X-Frame-Options <IfModule mod_headers.c> Header set X-Frame-Options "SAMEORIGIN" </IfModule>
# Strict-Transport-Security <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" </IfModule>
# X-Content-Type-Options <IfModule mod_headers.c> Header set X-Content-Type-Options "nosniff" </IfModule>
# Referrer-Policy <IfModule mod_headers.c> Header set Referrer-Policy "same-origin" </IfModule>
23. Doğru dosya izinleri kullanın
777 gibi yanlış dosya izni , bir hackerın dosya yüklemesine veya mevcut bir dosyayı değiştirmesine izin verebilir. Dosya izinlerini değiştirmek için cPanel’inizde oturum açmanız, “Dosya Yöneticisine” gitmeniz ve gerekli değişiklikleri yapmanız gerekir.
WordPress’e göre, aşağıdaki izinler doğru izinlerdir:
- Tüm dizinler 755 veya 750 olmalıdır
- Tüm dosyalar 644 veya 640 olmalıdır
- wp-config.php 440 veya 400 olmalıdır
Detaylar için “WordPress Dosya İzinleri Nasıl Olmalı ve Nasıl Değiştirilir” başlıklı içeriğimize göz atabilirsiniz.
24. WP giriş alanından parola sıfırlama seçeneğini devre dışı bırakın
WordPress siteniz çok sayıda şifre sıfırlama isteği alıyorsa, ön uçtaki şifre sıfırlama seçeneğini devre dışı bırakabilirsiniz. Bunu yaparak, e-posta adresiniz ele geçirilmiş olsa bile, yeni bir şifre bağlantısı talep edilmesi imkansız hale gelecektir. Böylece, kullanıcı adınız ve e-posta adresinize erişimi olan kötü niyetli kişiler için durumu biraz daha zorlaştırmış ve bir WP güvenlik önlemi daha almış olursunuz.
Aşağıdaki kodu functions.php dosyanızın sonuna ekleyin ve değişiklikleri kaydedin:
function disable_password_reset() { return false; } add_filter ( 'allow_password_reset', 'disable_password_reset' );
Kodu ekledikten sonra, herhangi biri WP giriş ekranından parola sıfırlama talebinde bulunduğunda aşağıdaki görselde olduğu gibi bir uyarıyla karşılaşır:
25. Sitenizi Google Search Consol’a ekleyin
WordPress sitenizi Google Search Consol’a eklemenin bir çok avantajı vardır. Sitenizle ilgili verileri görmenin yanı sıra, güvenlik sorunlarını da buradan görebilirsiniz. Google sitenizle ilgili sorunlar tespit ederse e-posta yoluyla sizi bilgilendirir.
26. Web sitenizi kötü amaçlı yazılımlara karşı tarayın
Web sitesi trafiğinde veya arama sıralamalarında ani bir düşüş fark ederseniz, manuel olarak bir tarama yapmanız sorunun tespiti için faydalı olabilir. Hatta herhangi bir sorun yaşamasanız bile düzenli olarak tarama yapmanızı öneririz. Bunun için kötü amaçlı yazılım ve güvenlik tarayıcılarından birini kullanabilirsiniz.
Hızlı tarama için: https://sitecheck.sucuri.net/
27. Tüm WordPress güvenlik önlemlerini kapsayan bir güvenlik eklentisi kullanın
WordPress güvenlik önlemleri almanın en basit, hızlı ve güvenli yolu, yukarıdaki adımları ve daha fazlasını içeren hepsi bir arada bir WordPress güvenlik eklentisi kullanmaktır.
Güvenlik eklentilerinin bir çoğu sitenizi güvende tutmak için gerekli tedbirleri içerir ve bunu otomatikleştirerek sizi manuel önlemler alma zahmetinden kurtarır.
WordPress güvenlik önlemleri için en iyi eklentilerin bulunduğu “En İyi WordPress Güvenlik Eklentileri (12 Popüler Eklenti)“başlıklı yazımız, ihtiyacınız olan eklentiyi seçmenize yardımcı olabilir.
Evet, web site sahiplerinin WordPress güvenliğini arttırmak için yapabileceği çok şey var. Yukarıda bu önlemlerden bazılarına değindik. Liste uzun olsa da, sitenizi korumak için tüm bu WordPress güvenlik ipuçlarını takip etmeniz ve uygulamanız faydalı olacaktır.
Dünyanın en popüler CMS’si olan WordPress, çok sayıda hackerın hedefidir. Bu nedenle, vakit kaybetmeden WordPress güvenliği için gerekli önlemleri almak gerekir. Yine de %100 güvenlik diye bir şey ne yazık ki söz konusu değil; amacımız WordPress güvenlik önlemleri ile riskleri en aza indirmek, kötü niyetli kişilerin işlerini zorlaştırmaktır…
WordPress güvenliği için cok değerli ayrıntılara deginmişsiniz. Pc’ye gecer gecmez bunları uygulayacagim. Teşekkür ederim. Boyle yazilarin devami gelir insallah.
Merhaba Muhammet, hoş geldin. Takıldığın herhangi bir nokta olursa lütfen bize bildir, seve seve yardımcı oluruz 🙂
WordPress güvenlik önlemleri almak çok önemli ama ben bu kadar detay olduğunu bilmiyordum. Sanırım iyi bir eklentiyle wp güvenliğini arttırmam gerekiyor. Çünkü işlemleri manuel olarak yapacak kadar kendime guvenmiyorum. Bugün işe koyulayım. Teşekkürler bu kapsamlı yazı için.
Yorum için teşekkürler Oğuz. Evet, güvenlik en önemli konu. İyi bir eklentiyle bu işi halledebilirsiniz. Kolaylıklar dileriz..
Güzel bir yazı olmuş tebrik ederim usta
Faydalı olabildiysek ne mutlu bize 🙂 Değerli yorumunuz için teşekkür bizden.