WordPress Güvenlik Önlemleri nelerdir? WordPress Güvenlik Tedbirleri, WordPress güvenlik ipuçları, Web Siteniz güvende mi? Güvenlik Önlemleri İçin Yapılması Gerekenler nelerdir.
Web sitemize saldıracak kötü emelli kişiler, Web sitemizde bazı açıklar arayacak, giriş denemeleri yapacak, Yönetici hesabını ele geçirmeye çalışacak, veya sunucuya sızmaya çalışacak ya da siteye erişimi engellemeye çalışacaktır. Bu gibi durumları atlatmak veya bu riskleri minimum seviyeye indirgemek çok önemlidir. Teknolojide Yüzde yüz güvenliğin olduğunu sanmıyorum ancak sizlere anlatacağımız bu yöntemlerle işlerini baya bir zorlayacağımız kesin.
Başlıklar
- 1 WordPress Güvenlik Önlemleri Nelerdir?
- 1.1 Güvenilir bir Tema kullanın
- 1.2 WordPress’iniz ve Eklentileriniz Güncel olsun.
- 1.3 Değişik bir Kullanıcı Adı ve Güçlü Bir Şifre Kullanın
- 1.4 Oturum Açma Denemelerini Sınırlandırın
- 1.5 Web Sitenizini Yedekleyin
- 1.6 Dosya ve Klasör İzinlerinizi kontrol edin
- 1.7 Eklenti Açıklarını Kapatma
- 1.8 Eşsiz doğrulama anahtarı
- 1.9 .htaccess Dosyası ile bazı güvenlik önlemleri
- 1.9.1 /wp-content/ ve alt dizinlerine ve index.php dosyalarına erişimi engelleme
- 1.9.2 WordPress Sürümünüzü Gizleyin
- 1.9.3 Hatalı Login bilgilendirme mesajlarını gizleyin
- 1.9.4 Display Errors İzinleri
- 1.9.5 Kapatılmamış HTML Etiketlerini Kapatın
- 1.9.6 XSS Açıklarını kapatma
- 1.9.7 SSL Kullanımına Zorlayın
- 1.9.8 Dosya düzenlemeyi devre dışı bırakalım
- 1.9.9 Hotlink koruması
WordPress Güvenlik Önlemleri Nelerdir?
Açık kaynak kodlu bir içerik yönetim platformu olan WordPress’in doğal olarak gizli kalmış bir şeyi yoktur. Bazı güvenlik açıklarının olduğunu da tahmin edersek, Aslında pekte güvende olmadığımız ortaya çıkar. Bu zaafların yanı sıra Web site ele geçirme yöntemlerinin de olduğunu düşünürsek, bazı önlemleri almanın çok yerinde olduğunu göreceğiz.
Güvenilir bir Tema kullanın
Bilmediğiniz yerlerdeki Ücretsiz temaları kullanmayın. Ücretli temaları ücretsiz sunan warez sitelerdeki temaları kullanmayın. Çünkü bu temaları dağıtan kişiler içine zararlı kodlar ekliyorlar. Sizde bu temaları kullandıktan sonra sitenize çok rahat müdahale etmiş oluyorlar.
WordPress’iniz ve Eklentileriniz Güncel olsun.
WordPress geliştiricileri tespit ettikleri açıkları yeni sürümde kapatırlar. Onun için WordPress ne kadar güncel olursa o kadar güvenli olur. Aynı zamanda kullandığınız Tema ve eklentiler de güncel olsun. Bazen eklentiler de zaafiyet vermektedir.
Değişik bir Kullanıcı Adı ve Güçlü Bir Şifre Kullanın
Yöneticilerinizin Şifrelerini güçlendirin, Basit şifrelerden kaçının, sosyal medyada veya başka bir yerde kullandığınız şifreleri kullanmayın. Yöneticilerin kullanıcı adları “admin” , “yonetici” gibi basit isimlerden oluşmasın. Bu gibi isimler kullandığınızda kötü niyetli kişilere işini kolaylaştırmış olursunuz.
Özellikle site yöneticilerinin güvenlik açısından daha güçlü şifreler kullanılması oldukça önemlidir. Güvenli bir parola oluşturmak için öncelikle en az on karakterden oluşması gerekmektedir. Daha güçlü bir şifre için şifrenizde büyük/küçük harfler, rakamlar ve !’^+%&/) vb. karakterler kullanılması önemlidir.
FTP Kullanıcı Adı ve Şifrenizi güçlendirin
FTP erişim yolunuz genelde ftp://ftp.siteniz.com şeklindedir. Sunucularda Güvenlik duvarı vardır ancak, siz ne olur ne olmaz Değişik bir kullanıcı adı kullanıp Şifrenizi güçlendirin. Daha güçlü bir şifre için şifrenizde büyük/küçük harfler, rakamlar ve !’^+%&/) vb. karakterler kullanılması önemlidir.
Oturum Açma Denemelerini Sınırlandırın
Kötü niyetli kişiler yönetim paneline erişmek için giriş denemeleri yapabilir. Bu giriş denemelerini belli bir sayıya kadar sınırlandırabilirsiniz. bunun için “Limit Login Attempts” eklentisini kullanabilirsiniz. veya bu işi yapan toplu güvenlik eklentileri mevcuttur. Bu eklenti ile belirttiğiniz denemeden sonra belli bir süre kullanıcıya erişim kapatılır.
Web Sitenizini Yedekleyin
Belkide WordPress Güvenlik Önlemleri arasında en önemli adıma geldik. Web sitemizin belli aralıklarla yedeğini almak çok önemlidir. Olası bir saldırıda zarar gören web sitesini eski çalışır haline getirmek için bir yedeğin olması işinizi kolaylaştıracaktır.
Bazı Hostinger şirketleri Web site yedekleme özelliğini sunarlar. Ancak sizin böyle bir seçeneğiniz yoksa veya işinizi sağlama almak istiyorsanız. “BackWPup” eklentisini kullanabilirsiniz. BackWPup eklentisi Tüm dosyalarınızı ve veri tabanınızı yedekler. Bu eklentinin otomatik yedekleme özelliği de bulunmaktadır. Bu işi en az haftada bir yapmanız gerekmektedir.
Eğer sadece Veri Tabanınızı yedeklemek istiyorsanız. Buradaki yazımıza bakabilirsiniz.
Dosya ve Klasör İzinlerinizi kontrol edin
Ftp Dizinindeki WordPress dosyalarınıza makul izinlerin üzerinde izin verilmiş olabilir. Bu nedenle site klasör ve dosyalarınıza izinsiz erişim sağlanabilir. Kontrol etmek için “FileZilla” adlı Ftp programı ile bakabilirsiniz. Klasör ve Dosyaların izinlerini aşağıda verdiğimiz şekilde olmasını sağlayın.
Ana dizin (root directory) : 755
wp-includes/ : 755
wp-admin/ : 755
wp-admin/js/ : 755
wp-content/ : 755
wp-content/themes/ : 755
wp-content/plugins/ : 755
wp-content/uploads/ : 755
wp-admin/index.php : 644
.htaccess : 644
wp-config.php : 644
Eklenti Açıklarını Kapatma
wp-content klasörü içerisindeki plugins bölümüne eklenti açıklarından ötürü girişi engellemek için WordPress varsayılan olarak index.php oluşturur. Ancak siz elle boş bir index.html dosyası oluşturup buraya atın.
Eşsiz doğrulama anahtarı
Bu kodun amacı önemli cookie’lerin siteye giren kullanıcıların bilgisayarlarında saklanmasını önlemek. Böylece eşsiz doğrulama anahtarı oluşturmak için WordPress Secret Key adresine gidip burada bulunan eşsiz kodu kopyalayıp wp-config.php dosyasındaki “secret key” bölümüne yapıştırabilirsiniz. Bu sayfaya her girişinizde farklı bir kodla karşılaşırsınız.
.htaccess Dosyası ile bazı güvenlik önlemleri
Web siteninizin ana dizininde bazı ayarların yapıldığı bir dosya vardır. .htaccess ile bazı yetkisiz erişimleri engelleyebiliriz. Bunun için FileZilla gibi bir Ftp programı ile Web sitenizin ana dizinindeki .htaccess dosyasını bilgisayarınıza indirin ve bir Not Defteri ile açıp aşağıdaki veriğimiz kodları en altına yapıştırıp kaydedin. Son olarak .htaccess dosyasını Ftp dizinine atın.
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 28 29 30 31 32 33 | # BEGIN Security # Sunucu imzasını kaldır ServerSignature Off # Dizin listelemeyi iptal et Options All -Indexes # PHP Sürümünü gizle Header unset X-Powered-By Header unset Server # Dosya erişimlerini engelle <files wp-config.php> <IfModule mod_litespeed.c> Order allow,deny Deny from all </IfModule> </files> <files wp-load.php> <IfModule mod_litespeed.c> Order allow,deny Deny from all </IfModule> </files> <files .htaccess> <IfModule mod_litespeed.c> Order allow,deny Deny from all </IfModule> </files> <files php.ini> <IfModule mod_litespeed.c> Order allow,deny Deny from all </IfModule> </files> # END Security |
/wp-content/ ve alt dizinlerine ve index.php dosyalarına erişimi engelleme
Boş bir .htaccess dosyası oluşturun içine aşağıdaki kodları yapıştırın. FTP Programı ile sitenizin /wp-content/ klasörüne atın.
1 2 3 | <Files *.php> deny from all </Files> |
WordPress Sürümünüzü Gizleyin
Kullandığımız WordPress sürümünü Kötü niyetli kişilerden korumakta fayda vardır. Kötü niyetli insanlara ne kadar az bilgi verirsek bizim için o kadar iyi. Eğer güncel olmayan bir wordpress sürümü kullanıyorsanız, bunu gizlemekte fayda var. Peki WP sürümünü nasıl gizleyeceğiz?
wp-content/themes/tema-adınız/ yolundan functions.php dosyasını bulun ve Not defteri ile açın. Ardından aşağıdaki kodu dosyaya ekleyin;
1 | remove_action('wp_head','wp_generator'); |
Hatalı Login bilgilendirme mesajlarını gizleyin
Admin paneline giriş yaparken yanlış bilgi girdiğimizde bize bunun hakkında bilgi verdiğini görmüşsünüzdür. Bu gibi ek bilgileri kaldırmak güvenlik açısından iyi olacaktır. Peki bu ek bilgi gösterimini nasıl kaldıracağız?
wp-content/themes/tema-adınız/ yolundan functions.php dosyasını bulun ve Not defteri ile açın. Ardından aşağıdaki kodu dosyaya ekleyin;
1 | add_filter('login_errors',create_function('$a', "return null;")); |
Display Errors İzinleri
PHP’de yapılan kodlama hatalarının gösterilmesine yarar. Aynı zamanda işlemlerin log kaydını da tutar. Peki Display Errors izinlerini nasıl gizleyebiliriz?
Ana dizindeki wp-config.php dosyasını bulun ve Not defteri ile açın. Ardından en aşağıda bulunan require_once kodunun en altına aşağıdaki kodu yapıştırın.
1 2 3 4 | ini_set('display_errors','Off'); ini_set('error_reporting', E_ALL ); define('WP_DEBUG', false); define('WP_DEBUG_DISPLAY', false); |
Kapatılmamış HTML Etiketlerini Kapatın
Bazı HTML Etiketlerini kapatmanız güvenlik açısından iyi olacaktır. Peki bunu nasıl yapacağız? wp-config.php dosyasını bulun ve açın. Ardından dosyanın en üstüne şu kod satırını ekleyin.
1 | define('DISSALOW_UNFILTERED_HMTL', true ); |
XSS Açıklarını kapatma
XSS açığı coder’ların bilinçsiz kodlama hatasından doğan bir açık türüdür ve oldukça ciddi sonuçlar doğurabilmektedir. Coder’lar her ne kadar GET ve POST isteklerine karşı koruma yapsalar da bu yeterli olmuyor. Web sitemizi GLOBAL_REQUEST’in değiştirilmesine karşı da korumamız gerekmekte. Peki bunu nasıl yapacağız?
.htaccess dosyasını bulun ve açın. Ardından aşağıdaki kodu içerisine yapıştırın.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # BEGIN XSS Koruması <IfModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" Header always append X-Frame-Options SAMEORIGIN Header set X-Content-Type-Options nosniff </IfModule> <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} base64_encode.*\\(.*\\) [OR] RewriteCond %{QUERY_STRING} (\\<|<).*script.*(\\>|>) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\\[|\\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\\[|\\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F,L] </IfModule> # END XSS Koruması |
SSL Kullanımına Zorlayın
SSL Protokolünü kullanıyorsanız, ziyaretçiyi SSL Kullanımına zorlamakta fayda var. Veri gizliliği açısından bu çok önemli bir aşamadır. Eğer web sitenizde SSL kullanıyorsanız wp-config.php dosyasını bulun ve açın. Ardından aşağıdaki kodarı bir yere ekleyin.
1 2 | define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true); |
Dosya düzenlemeyi devre dışı bırakalım
WordPress özelliklerinden biri de sunucudaki dosyaları düzenlemektir. Bu nedenle bir eklenti kolayca sunucunuzdaki dosyalarınızı düzenleyebilir. Kapatmak için: Ana dizindeki wp-config.php dosyasını bulun ve Not defteri ile açın ve aşağıdaki kodu bir yere ekleyin.
1 | define('DISALLOW_FILE_EDIT', true); |
Hotlink koruması
Bu her ne kadar WordPress Güvenlik Önlemleri arasında bir yeri olmasa da, Sitenizden alınan görsel linkleri başka birilerinin kullanması ile, sunucunuza extra yük binmesi anlamına gelir. Bunun için belli siteler hariç görsellerimiz’i kullanmayı engelleyeceğiz.
Mesela aşağıdaki kodlarda idealkaynak.net yerini kendi sitenizin adresi ile değiştirin. başka izin vermek istediğiniz domain varsa, aynı satırı çoğaltıp ekleyebilirsiniz. Son olarak bu kodu .htaccess dosyanızda bir yere ekleyin.
1 2 3 4 5 6 7 8 9 10 11 12 | # BEGIN hotlink Protection <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tekniknot.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yandex.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feeds.feedburner.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] </IfModule> # END hotlink Protection |