WordPress, internetteki tüm web sitelerinin %32’sinden fazlasını güçlendiriyor ve bilgisayar korsanları, DDOS ve diğer kötü amaçlı saldırılar için büyük bir hedef haline geliyor. Binlerce tema ve eklenti ile, güvenlik açıklarının mevcut olması ve günlük olarak keşfedilmesi şaşırtıcı değil. Bir WordPress web sitesi sahibi olarak, web sitenizde kullanılabilecek herhangi bir güvenlik kusuru olmadığından emin olmak sizin sorumluluğunuzdadır.
Aşağıda, en popüler İçerik Yönetim Sistemleri’nin yan yana karşılaştırması yer almaktadır.
İçerik Yönetim Sistemleri
Gördüğünüz gibi WordPress açık ara bir numaralı virüslü platform yani en çok saldırı alabilecek bir platform. Bu, WordPress’in güvenli olmadığı anlamına gelmez. Aslında, temel WordPress dosyaları son derece güvenlidir. Bu Enfeksiyonların çoğu kötü kodlanmış eklentilerden ve temalardan kaynaklanmaktadır.
Saldırıya uğramış bir WordPress sitesi, işletme gelirinize ve itibarınıza ciddi zarar verebilir. Bilgisayar korsanları bilgileri, şifreleri çalabilir, kötü amaçlı yazılım yükleyebilir ve hatta ziyaretçilerinize kötü amaçlı yazılım dağıtabilir. Güvenlik söz konusu olduğunda yapabileceğiniz birçok şey var. Bu kılavuzda, WordPress web sitenizi güvence altına almak için kullanabileceğiniz en iyi ipuçları, stratejilerimizi ve tekniklerimizi paylaşacağız.
İyi WordPress Hosting Bulma
WordPress güvenlik söz konusu olduğunda, barındırıcınızın da sorumlu olduğu web sunucusu güvenliği de vardır.
İyi bir hosting firması aranacak üç önemli şey şunlardır:
Otomatik yedekleme
Online destek
DDOS saldırı koruması
Tabi bu kişiden kişiye değişir ama olası saldırılarda DDOS koruma, yedekleme ve online desteğin çok önemi vardır.
Türkiye’de hosting hizmeti veren firmalardan kullanıcı memnuniyeti ve yukarıda ki üç önemli maddeyi karşılayan işlerinde tecrübeli firmalar:
- Güzel Hosting
- Turhost
- Veridyen
Güvenli Bir WordPress Teması Alın
Güvenli bir WordPress teması, bilinen güvenlik açıklarını içermeyen, sürekli güncellenen, uygun kod standartlarını izleyen ve hem WordPress sürümünüzle hem de sitenizin eklentiler gibi diğer unsurlarıyla uyumlu olan temadır. Kara kutu gibi ne olduğu belli olmayan her an sitenize zarar verecek sitenizin imajını ve güvenliğini zedeleyecek sağda solda dağıtılan warez temalardan uzak durmalısınız.
Tüm bu kriterleri karşılayan bir temaya sahip olmak, gereksiz hataları, uyumluluk hatalarını ve benzer sorunları önlemenize yardımcı olacaktır. Bilgisayar korsanlarının, kötü amaçlı yazılımların ve diğer istenmeyen etkilerin web sitenizi etkilemesini çok daha zor hale getireceksiniz, çünkü sömürülmeleri için daha az güvenlik açığı olacaktır.
Bununla birlikte, güvenli bir tema bulmanın en iyi yolu, onu saygın bir kaynaktan elde etmektir. Aşağıda kendimi kullandığım ve tavsiye ettiğim birkaç tema var:
- Avada
- Divi
- Newspaper
- Jannah
- Voice
- Publisher
- JNews
Zaten bir WordPress temanız varsa Theme Check gibi bir eklenti kullanabilirsiniz . Tema kontrolü eklentisi, temanızı test etmenin ve en son WordPress tema standartlarına uyduğundan emin olmanın kolay bir yoludur. Geçme puanı mutlaka temanızın mükemmel olduğu anlamına gelmez, ancak sağlam kodlama uygulamalarının bir göstergesidir.
Kullanılmayan Eklentileri ve Temaları Kaldırma
WordPress web sitenizi oluştururken, WordPress kurumu ile gelen veya tema ve ekletileri kaldırmayı ve sonrada kurulup kullanılmayan eklentileri silmeniz gerekmektedir. Hem SEO açısından hem site güvenliği açısından bu önemli bir rol oynar.
Bir tema veya eklenti etkin ve etkin olmasa da, bilgisayar korsanlarının girmesi için güvenlik delikleri açmaya devam edebilir. Bunun nedeni, potansiyel olarak güvenlik riski olabilecek eklenti veya tema dosyalarının / wp-content / dizininizde bulunmasıdır. SEO açısından ise önemsiz kod yapısı olduğundan web sitenizin hızını etkileyeceğinden web sitenizin yavaş açılmasına ve ziyaretçi kaybına yol açabiliri.
WordPress’i Güncel Tutun
Güncel tutulmayan hemen hemen her WordPress web sitesi er ya da geç saldırıya uğrayabilir. Bilgisayar korsanları, özellikle eski ve savunmasız WordPress eklentileri ve temaları için internette arama yapan komut dosyaları kullanır.
Bu nedenle, eklentilerinizi, temalarınızı ve temel WordPress dosyalarınızı güncel tutmak son derece önemlidir. Aslında, bu kılavuzda yapabileceğiniz en önemli şeylerden biri web sitenizi güncel tutma olabilir.
Güncelleme geldiği zaman üst menüde size yeni güncelleme bildirisi verdiği zaman üzerine tıklayarak Güncelleme sayfasından WordPress güncellemeleri yapabilirsiniz. Ancak, premium eklentiler veya temalar satın aldıysanız, en son sürümü indirmek için doğrudan web sitelerine gitmeniz gerekebilir.
Güncellemeden önce web sitesi dosyalarınızın ve veritabanınızın yedeğini aldığınızdan emin olun. Bazen WordPress’in daha yeni bir sürümüne güncelleme yapmanız, özellikle eski olan eklentileri ve temaları kullanıyorsanız web sitenizi bozabilir.
Yedekleme, Yedekleme, Yedekleme!
Web sitenizin güncel bir yedeğini almak çok önemlidir. Bu sadece güvenlik nedeniyle değil, genel olarak iyi bir fikirdir. Web sitenizin yedeğine sahip olmak, herhangi bir şey olması durumunda WordPress sitenizi hızlı bir şekilde geri yüklemenizi sağlar.
Web sitenizi ne sıklıkta düzenlediğinize bağlı olarak, haftalık veya günlük olarak güncellemek isteyebilirsiniz. Büyük veya küçük değişiklikler yaptığımda kişisel olarak yedek alırım. WordPress web sitenizi manuel olarak yedekleyebilirsiniz veya mevcut birçok yedekleme eklentisinden birini kullanabilirsiniz. UpdraftPlus ve BackWPup en popüler ikisi ve bir ton özellik sunuyor. Tabi tavsiyem kendiniz manuel olarak yedek almanızdır.
BackWPup – WordPress Backup Plugin
UpdraftPlus WordPress Backup Plugin
WordPress Gösterge Tablosunda Dosya Düzenlemeyi Devre Dışı Bırakma
WordPress varsayılan olarak yöneticilerin temayı ve eklenti kodunu gösterge tablosundan düzenlemesine izin verir. Harika bir özellik olsa da, özellikle birden fazla kullanıcınız varsa bir güvenlik riski olabilir.
WordPress kontrol panelinize giriş yapan birden fazla kullanıcınız varsa, her kullanıcıya doğru rolü atamanız önemlidir. Sadece gerekli olan şeylere erişime izin vermek. Rolleri atarken unutursanız veya hata yaparsanız, birisine dosya düzenleyicinize erişim verilebilir.
Bu dosyalardan birinde bulunan tek bir yazım hatası, web sitenizi tamamen bozabilir. Dosya düzenleyici ayrıca bir hacker’ın kötü amaçlı kod çalıştırması için kolay bir yoldur. Bu nedenlerle, tamamen devre dışı bırakmanızı öneririz.
Wp-config.php dosyasına aşağıdaki kodu ekleyerek bu özelliği tamamen devre dışı bırakabilirsiniz.:
define('DISALLOW_FILE_EDIT', true);
Nasıl yaparım diyecek olursanız ftp ile web sitenize bağlanarak veya Cpanel var ise oradan wp-config.php dosyasını düzenlemeyi açıp yukarıda verdiğim kod en alt kısıma ekleyip kaydedebilirsiniz.
WordPress Sürümünü (Versiyon) Kaldır
Varsayılan olarak, WordPress sürüm bilgilerini kaynak kodunuzda görüntüler. Bu, izleme amacıyla kullanılır ve büyük bir güvenlik riski olabilir. Bilgisayar korsanları, belirli bir sürümdeki bilinen güvenlik açıklarından yararlanmak için bu bilgileri kullanabilir. Bu nedenle, sürüm numarasını web sitenizin tüm alanlarından kaldırmak iyi bir fikirdir.
WordPress Sürümünü (Versiyon) Kaldır
WordPress sürüm numarasını web sitenizin tüm alanlarından kaldırmak için aşağıdaki kodu temanızın function.php dosyasına ekleyin:
// remove version from head remove_action('wp_head', 'wp_generator'); // remove version from RSS add_filter('the_generator', '__return_empty_string'); // remove version from scripts and styles function shapeSpace_remove_version_scripts_styles($src) { if (strpos($src, 'ver=')) { $src = remove_query_arg('ver', $src); } return $src; } add_filter('style_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999); add_filter('script_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999);
WordPress’in en son sürümünü her zaman kullanıyorsanız, bu bir büyük bir tehlike olamayabilir. Ancak, potansiyel bir bilgisayar korsanına olabildiğince az bilgi vermek istediğim için WordPress sürümümü hala kaldırıyorum.
WordPress Dizin Taramayı Devre Dışı Bırak
Hiç bir web sayfasını ziyaret ettiniz ve aşağıdaki resme benzer gerçek HTML yerine bir dosya listesi fark ettiniz mi? Sunucular dizin listesini bir dizin sayfası olmadan görüntüler. Bunun anlamı, bir ziyaretçi https://siteadresi.com/wp-includes/ gibi belirli bir dizinin yolunu yazarsa ve index.php dosyası yoksa, sunucunun bu klasör içindeki her şeyi görüntüleyeceği anlamına gelir. Bir bilgisayar korsanı web sitenizin iç işleyişini keşfetme yeteneği verdiği için bu tehlikeli olabilir.
Dizin Taramayı Devre Dışı Bırak
İyi haber şu ki, .htaccess dosyanıza tek bir kod satırı ekleyerek bunu kolayca önleyebilirsiniz. Dizin taramasını devre dışı bırakmak için .htaccess dosyanızı açın ve aşağıdaki kodu içine yapıştırın:
Options All -Indexes
Hassas Dosyaları .htaccess ile Koruma
WordPress kurulumu, wp-config.php, license.txt ve readme.html dosyaları gibi hassas dosyalar içerir. Hassas bilgiler içerdiğinden, bu dosyaları dış erişimden gizli tutmak en iyisidir.
Bu dosyaların bazıları silinebilir. Ancak, WordPress’in daha yeni bir sürümüne güncellediğinizde tekrar geri gelecektir. Bu nedenle, onları .htaccess dosyanızı kullanarak gizlemek en iyisidir. Böylece artık endişelenmenize gerek kalmaz.
Aşağıdaki kodu kopyalayıp kök dizinde bulunan .htaccess dosyanıza yapıştırın:
# Protect .htaccess
Order allow,deny Deny from all# Protect readme.html Order allow,deny Deny from all# Protect license.txt Order allow,deny Deny from all# Protect wo-config.php Order allow,deny Deny from all# Protect error_log Order allow,deny Deny from all
WordPress Admin Panel Giriş Yolunu Değiştime
Brute Force Attack, bir web sitesine erişmenin en yaygın yollarından biridir. Varsayılan olarak, WordPress kullanıcıların kullanıcı adlarını ve şifrelerini istedikleri kadar girmelerine izin verecektir. Bilgisayar korsanları, kullanıcı adı ve parolaları, girene veya sunucu ölene kadar tekrar tekrar deneyen programlar kullanır. WordPress’te yaygın bir saldırı noktası wp-login.php veya wp-admin. Varsayılan olarak her WorpPress kurulu web sitenin admin yolu aynıdır bu yüzden admin panel yolunu değiştirerek, sitenizin admin panel giriş erişimini saldırganlardan gizlemiş ve web sitenizi güvenliğini bir üst seviyeye taşımış olursunuz.
Gizlemek için wps hile login eklentisini kullanığız aşağıdaki adımları izleyerek WordPress admin panel yolunu değiştirebilirsiniz.
- WordPress admin panelinize siteismi.com/wp–admin/ yolu ile giriş yapın.
- Eklentiler -> Yeni Ekle tıklayın.
- Arama kısmına wps hile login yazın ve Hemen Yükle tıklayın.
- Etkinleştir’e tıklayın.
- Settings / Ayarlar‘a tıklayın.
- login url kısmındaki kutuya yeni wp–admin/ wp-login/ giriş yolunu girin.
SQL Injection’a karşı koruma
SQL Injection, WordPress veritabanlarını manipüle etmek için en yaygın kullanılan hackleme tekniğidir. SQL enjeksiyon saldırıları, bir web uygulaması bir web formundan, çerezden, giriş parametresinden vb. Alınan SQL çıklarından olur.
Saldırgan, SQL komutlarını yürütebilecek kötü amaçlı kod ekleyerek giriş alanlarını kolayca kötüye kullanabilir. Bu komutlar WordPress veritabanınızdaki verileri oluşturabilir, alabilir, güncelleyebilir ve hatta silebilir.
Aşağıda web sitenizin .htaccess dosyasına eklenebilecek bazı kodları paylaştım. Bu kod, birçok ciddi SQL enjeksiyon saldırısından korunmanıza yardımcı olacak güçlü bir kurallar dizisi koyacaktır.
# Protect Against SQL Injection
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC] RewriteRule ^(.*)$ - [F,L] RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR] RewriteCond %{QUERY_STRING} boot\.ini [NC,OR] RewriteCond %{QUERY_STRING} tag\= [NC,OR] RewriteCond %{QUERY_STRING} ftp\: [NC,OR] RewriteCond %{QUERY_STRING} http\: [NC,OR] RewriteCond %{QUERY_STRING} https\: [NC,OR] RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR] RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR] RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>|ê|"|;|\?|\*|=$).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*("|'|<|>|\|{||).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC] RewriteCond %{HTTP_COOKIE} !^.*WordPress_logged_in_.*$ RewriteRule ^(.*)$ - [F,L]
WordPress Veritabanı Önekini Değiştirme (wp_)
WordPress veritabanınız, kullanıcı adları, şifreler, e-postalar vb. Gibi hassas bilgiler içerir. Bu nedenle, bilgisayar korsanları için popüler bir hedeftir. Bilgisayar korsanları, veritabanınıza saldırmak ve web sitenize girmek için SQL enjeksiyonları, otomatik komut dosyaları ve diğer kötü amaçlı kodlar geliştirir. Bu nedenle veritabanınızı korumanız çok önemlidir.
Kusursuz olması garanti edilmeyen bir güvenlik önlemi olmamasına rağmen, web sitenizin veritabanını, yalnızca varsayılan tablo önekini değiştirerek acemi saldırganlardan koruyabilirsiniz. Wp_’nin varsayılan tablo önekini başka bir şeye değiştirmek, saldırganın tahminini zorlaştıracaktır.
Yazmış olduğum yazıda adımları izleyerek varsayılan veritabanı önekini değiştirebilirsiniz.
WordPress’de XML-RPC’yi Devre Dışı Bırakma
XML-RPC, WordPress’in verilerin aktarım mekanizması olarak HTTP ve kodlama mekanizması olarak XML ile iletilmesini sağlayan bir özelliğidir. WordPress kendi kendine kapalı bir sistem olmadığından ve bazen diğer sistemlerle iletişim kurması gerektiğinden, bu işin üstesinden gelmek için yaratılmıştır.
XML-RPC ile ilgili en büyük sorunlar, ortaya çıkan güvenlik endişeleridir. Sorunlar doğrudan XML-RPC ile değil, bunun yerine dosyanın sitenize kaba kuvvet saldırısı sağlamak için nasıl kullanılabileceği ile ilgilidir. Bilgisayar korsanları, yüzlerce farklı şifreyi test etmek için tek bir komutu etkili bir şekilde kullanabilir. Bu, kaba kuvvet saldırılarını tipik olarak algılayan ve engelleyen güvenlik araçlarını atlamalarına olanak tanır.
Elbette, inanılmaz derecede güçlü şifreler ve WordPress güvenlik eklentileri ile kendinizi koruyabilirsiniz. Ancak, kendinizi korumanın en iyi yolu onu devre dışı bırakmaktır.
WordPress xmlrpc.php dosyanızı devre dışı bırakmak için .htaccess dosyanıza aşağıdaki kodu ekleyiniz.
# Block WordPress xmlrpc.php
order deny,allow deny from all
Önerilen Güvenlik Eklentilerimiz
WordPress güvenlik eklentileri bir şey doğru olmadığında sizi e-posta yoluyla uyarmanıza olanak tanır. Bu, WordPress web sitenizi daha da güvenli hale gelmesine yardımcı olacaktır.
Aşağıdaki güvenlik eklentiler bu kılavuzda yazdığım her şeyi (ve daha fazlasını) sadece birkaç tıklamayla yapılabilir.
iThemes Security
All In One WP Security & Firewall
Wordfence Security