29 Ocak 2019 Salı

WordPress Güvenliğini Artırmak

WordPress Güvenliğini Artırmak İçin En İyi .htaccess Parçacıkları


WordPress güvenliği acemi blogcular arasında en çok zarar gören faktörlerden biridir. Denetlenmeyen bir WordPress kurulumunda, katılımsız bırakılan oldukça az sayıda potansiyel güvenlik açığı vardır. WordPress kurulum eğitimlerinin çoğu, WordPress'i birkaç dakika içinde dağıtmanın hızlı ve kolay bir yolunu açıklar. Ancak birkaç önemli güvenlik faktörünü kaçırıyorlar. Örneğin, 'yönetici' kullanıcı adını tarayan ve kullanan dizin, ciddi güvenlik boşlukları olarak kabul edilir. Bugün, WordPress blogunuzun güvenliğini artıracak 10 .htaccess kod parçacığına göz atacağız. Başlamadan önce, htaccess dosyasının ne olduğuna bir göz atalım.

.Htaccess dosyasi nedir?

Bir htaccess dosyası, Apache web sunucusunun her bir dizin için yorumlaması için isteğe bağlı bir yapılandırma dosyasıdır. Bu dosyada çeşitli ayarları saklayabilirsiniz: parola bir dizini korumak, IP'leri engellemek, bir dosyayı veya herkese açık erişimi engellemek vb. Geleneksel olarak, .htaccess dosyası temel WordPress kurulum dizininde bulunur. Varsayılan olarak kalıcı bağlantı yapısını depolar.

İPUCU:  Öğreticiye başlamadan önce, mevcut .htaccess dosyasını (varsa) Dropbox gibi bir bulut depolama hizmetinde yedeklediğinizden emin olun. Belirli bir kod pasajı sitenizi keserse, bu bilinen en son çalışan .htaccess dosyasına geri dönmektir. Hadi başlayalım.

1. Kötü Botları Engelle

Kötü botlar

.Htaccess dosyasının en iyi kullanımlarından biri, birden fazla IP adresinin sitenize erişmesini reddetme yeteneğidir. Bu, bilinen spam göndericileri ve diğer şüpheli veya kötü amaçlı erişim kaynaklarını engellerken kullanışlıdır. Kod:

# Block one or more IP address.
# Replace IP_ADDRESS_* with the IP you want to block

<Limit GET POST>
order allow,deny
deny from IP_ADDRESS_1
deny from IP_ADDRESS_2
allow from all
</Limit>

IP_ADDRESS_1, sitenize erişmesini önlemek istediğiniz ilk IP'dir. İstediğiniz kadar IP ekleyebilirsiniz. Hangi kullanıcı aracıları (tarayıcılar) kullanılırsa, bu IP adresleri, sunucunuzdan tek bir dosyaya erişemez. Web sunucusu tüm erişimi otomatik olarak reddeder.

2. Dizin Taramayı Devre Dışı Bırak

wordpress htaccess hack dizin taramayı devre dışı bırak
Bu, bir WordPress sitesindeki en zayıf güvenlik hatalarından biridir. Varsayılan olarak, Apache web sunucusu, dizin taramasını sağlar. Bu, web sunucusunun kök dizinindeki (bazen giriş dizini adı verilen) tüm dosya ve klasörlerin bir ziyaretçi tarafından listelenebildiği ve erişilebildiği anlamına gelir. Bunu istemiyorsunuz çünkü insanların medya yüklemelerinizi veya tema veya eklenti dosyalarınızı taramasını istemiyorsunuz.

Eğer rastgele bir şekilde WordPress çalıştıran 10 kişisel veya işletme web sitesini seçersem, 6-8 tanesi dizinde gezinmeyi devre dışı bırakmaz. Bu, herkesin wp-content / uploads klasörü veya varsayılan index.php dosyasına sahip olmayan başka bir dizine kolayca göz atmasına izin verir . Aslında, gördüğünüz ekran görüntüsü, düzeltmeyi önermeden önce müşterimin sitelerinden biri. Dizin taramayı devre dışı bırakmak için kod pasajı:

# Disable directory browsing
Options All -Indexes

3. wp içeriğinden Sadece Seçili Dosyalara İzin Ver

Bildiğiniz gibi wp-content klasörü temalarınızı, eklentilerinizi ve tüm medya yüklemelerinizi en çok içeriyor. Kesinlikle insanların kısıtlama olmadan erişmesini istemiyorsunuz. Dizin taramayı devre dışı bırakmanın yanı sıra, tüm dosya türlerinin erişimini reddedebilir, birkaç tane kaydedebilirsiniz. Temelde, JPG, PDF, DOCX, CSS, JS vb. Dosyaları seçerek kaldırabilir ve diğerlerinden inkar edebilirsiniz. Bunu yapmak için, bu kod pasajını .htaccess dosyanıza yapıştırın:

# Disable access to all file types except the following
Order deny,allow
Deny from all

<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>

Kodla yeni bir .htaccess dosyası oluşturmalı ve wp-content klasörüne yapıştırmalısınız . Bunu temel kurulum dizinine koymayın - yoksa işe yaramaz. Ayrıca, '|' ekleyerek listeye herhangi bir dosya türü ekleyebilirsiniz. 'rar' dan sonra. Yukarıdaki liste gerekli dosyaları içerir - XML, CSS ve JavaScript, ortak resim ve belge formatları ve en sonunda kullanılan arşiv formatları.

4. Tüm Erişimi wp-içerirler ile sınırla

Klasör wp-includes Herhangi bir eklenti veya tema olmadan birini - WordPress çekirdek sürümünü çalıştırmak için kesinlikle gerekli olan dosyaları içerir. Unutmayın, varsayılan tema hala wp-content / theme dizininde bulunur. Bu nedenle, hiçbir ziyaretçi (siz dahil) wp-include klasörünün içeriğine erişim gerektirmemelidir . Aşağıdaki kod pasajını kullanarak erişimi devre dışı bırakabilirsiniz:

# Block wp-includes folder and files

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

5. Yalnızca Seçili IP Adreslerinin wp-admin'e Erişmesine İzin Ver

Wp-admin klasörü WordPress dashboard çalıştırmak için gereken dosyaları içerir. Çoğu durumda, ziyaretçilerinizin bir hesap açmak istemedikleri sürece WordPress panosuna erişmeleri gerekmez. İyi bir güvenlik önlemi, wp-admin klasörüne erişmek için yalnızca birkaç seçilmiş IP adresinin etkinleştirilmesidir . Editörlere, katkıda bulunanlara ve diğer yöneticilere - WordPress panosuna erişmesi gereken kişilerin IP'lerine izin verebilirsiniz. Bu kod parçacığı yalnızca sabit IP'lerin wp-admin klasörüne erişmesine izin verir ve dünyanın geri kalanına erişimi reddeder.

# Limit logins and admin by IP

<Limit GET POST PUT>
order deny,allow
deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2
</Limit>

Yeni bir .htaccess dosyası oluşturduğunuzdan ve onu temel kurulum dizinine değil wp-admin klasörüne yapıştırdığınızdan emin olun. İkincisi ise, sizden başka kimse siteye göz atamayacak - arama motorları bile değil! Bunu kesinlikle istemiyorsun. Bu önlemin bir kaç çöküşü aşağıdaki gibidir:

Siteniz yeni kullanıcı kaydına izin veriyorsa veya tanıtıyorsa , kullanıcı sayısını takip etmek neredeyse imkansız olurdu. Örneğin, WPExplorer'da harika ücretsiz temalarımızı indirmek istiyorsanız kayıt olmalısınız.
Olan insanlar dinamik IP adresleri (PPP veya PPPoE protokollerini kullanarak çoğunlukla ADSL genişbant kullanıcıları), onların IP'leri değişti onlar çıkış yapıp onların ISP giriş her zaman var. Kesinlikle tüm bu IP'lerin izini sürmek ve bunları htaccess dosyasına eklemek pratik olmaz.
Mobil geniş bant: 3G veya 4G'de olsanız da, IP adresiniz bağlı olduğunuz mevcut hücre kulesine bağlıdır. Seyahat ettiğinizi söyleyin - IP adresiniz, kökeninden taşıdığınız her mil ile birlikte sürekli değişecek. Yine, htaccess dosyasını takip etmek neredeyse imkansız.
Genel Wi-Fi Bağlantı Noktaları: Genel bir Wi-Fi etkin noktası kullanarak İnternete bağlanıldığında kimlik bilgilerinin kullanılması büyük bir hayırdır, çünkü küçük bir yazılımı olan bir çocuk yazdığınız her karakteri çıkarabilir. Her Wi-Fi etkin noktasında benzersiz bir IP adresi olacaktır.
Neyse ki, tüm bu dezavantajlar (ilkini kaydedin), bir VPN kullanılarak düzeltilebilir. VPN'inizi yalnızca tek bir IP adresi kullanarak bağlanacak şekilde ayarlarsanız, bunu sadece htaccess dosyanıza ekleyebilirsiniz; tüm sorunlarınız çözülecektir.

6. wp-config.php ve .htaccess kodunu herkesten koruyun

wordpress-e-ticaret-güvenlik-alışveriş-ipuçları
Wp-config.php dosyası WordPress sitenizin en hassas erişim kimlik bilgilerini içerir. Diğer ayarların yanı sıra veritabanı adını ve erişim bilgilerini ve çeşitli diğer kritik verileri içerir. Hiçbir koşulda başkalarının bu dosyaya bakmasını istemezsiniz. Ve tabii ki, tüm bu güvenlik kaynağına - .htaccess dosyasının kendisine - halka açık erişimi engellemek istiyorsunuz . Aşağıdaki kodla wp-config.php dosyasına erişimi devre dışı bırakabilirsiniz :

# Deny access to wp-config.php file
<files wp-config.php>
order allow,deny
deny from all
</files>
Tüm htaccess dosyalarına erişimi reddetmek için (bazılarının wp-admin ve diğer klasörlerde bulunabileceğini unutmayın), bu kod snippet'ini kullanın:

# Deny access to all .htaccess files
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

7. Görüntü Hotlinking inkar

görüntü hotlinking
En güzel .htaccess dosyası hack'lerinden biri, bu da kuyruğu bacakları arasında çalışan içerik kazıyıcılarını gönderir. Birisi sitenizin görüntüsünü kullandığında, bant genişliğiniz tükeniyor ve çoğu zaman bunun için kredili bile değilsiniz. Bu kod snippet'i bu sorunu ortadan kaldırır ve bir hotlink algılandığında bu görüntüyü gönderir.

# Prevent image hotlinking script. Replace last URL with any image link you want.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L]

8. Tarayıcı Önbelleğe Almayı Etkinleştirme

web tarayıcılarının listesi
İstemci tarafı önbelleğe alma olarak da bilinen bu .htaccess, WordPress siteniz için önerilen tarayıcı önbellekleme seçeneklerini etkinleştirir. Diğer projelerde de kullanabilirsiniz - HTML siteleri vb.

# Setup browser caching

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

9. Bakım sayfasına yönlendirme

Web barınaklarını taşırken veya bazı bakım görevlerini gerçekleştirirken, ziyaretçilerinize web sitesinin bir yükseltme veya bakım işlemi geçirdiğini bildirmek için her zaman statik bir "bakım için aşağı" HTML dosyası oluşturmanız önerilir. Bir maintenance.html dosyası (veya başka bir dosya adı) oluşturun ve dosyayı temel WordPress kurulum dizinine yükleyin. Aşağıdaki pasajı .htaccess dosyanıza yapıştırın. İşlem bittiğinde, genel işleme geri dönmek için bu satırları sildiğinizden veya yorumladığınızdan emin olun. Her satırın başına '#' ekleyerek yorum yapabilirsiniz.

# Redirect all traffic to maintenance.html file
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L] 
10. Özel Hata Sayfaları
404 şablon

403, 404 ve 500 gibi hatalar için kullanıcı dostu özel hata sayfalarını yapılandırmak için .htaccess dosyasını da kullanabilirsiniz. Hata sayfanızı hazırladıktan sonra - error.html diyelim, temel WordPress kurulum dizininize yükleyin. Ardından, özel hata sayfasını etkinleştirmek için .htaccess dosyanıza aşağıdaki kod parçasını ekleyin:

# Custom error page for error 403, 404 and 500

ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
ErrorDocument 500 /error.html

Sonuç:

Bugün, WordPress sitenizi güçlendirmek için en iyi htaccess bilgisayar korsanlarından bazılarını öğrendik. Her modülü test etmeden önce ve sonra .htaccess dosyasının bir yedeğini alırken her modülü birer birer denemenizi öneririm. Bunun nedeni, .htaccess dosyasının çok kritik olmasıdır. Eksik '#' karakterli veya yanlış yerleştirilmiş '</IfModule>' sitenizin bütünlüğünü tahrip edebilir. WordPress panonuza hareket halindeyken sık sık erişiyorsanız, seçici IP'leri wp-admin klasörünüze etkinleştirmemeniz önerilir .