Erhan Yakutun Paylaşmış Olduğu Yararlı Bir Makale....
Guvenlik konusunda belki de en onemli meseledir dosyaların guvenliği. Cunku dosyalar bizzat sitelerin cokertilmelerine sebep olabilecekleri gibi wp-config.php gibi kritik bir dosya nedeniyle veritabanınıza da veda etmek zorunda kalabilirsiniz. Dosya guvenliği konusunda wp-config.php dosyası uzerinde ozellikle durmak istiyorum. Bununla birlikte diğer dosyaların guvenliği ve .htaccess dosyasından da bahsedeceğim.
Dosya İzinleri
WordPress kurulumunu tamamladıktan sonra ilk yapmanız gereken şey wp-admin klasorundeki install.php dosyasını silmektir. Ardından sıra dosyaların izinlerindedir. Yanlış bir dosya izni nedeniyle sunucuya sızılabileceğini unutmayın. WordPress ’in kritik dosya ve kalsorleri ile bunların izinleri icin aşağıdaki tabloyu referans olarak alabilirsin ama tabi cok daha sıkı bir sistem icin izinleri kendi isteğinize gore ayarlayabilirsiniz.
Ana dizin (root directory) : 0755
wp-includes/ : 0755
wp-admin/ : 0755
wp-admin/js/ : 0755
wp-content/ : 0755
wp-content/themes/ : 0755
wp-content/plugins/ : 0755
wp-admin/index.php : 0644
.htaccess : 0644
wp-config.php : 0644
Genişletmek icin tıkla ...
Bazı eklentiler kurulmak icin wp-content gibi klasorlerin yazılabilir olmasını ister. Boyle durumlarda eklentiyi kurmadan once dosya iznini 0777 yapın ve kurulum tamamlandıktan sonra klasoru tekrar eski dosya iznine dondurun. Aynı durum .htaccess dosyası icin de gecerlidir. Mutlaka eski dosya iznine donuş yapın.
Yukleme klasorunuzun (uploads, yuklemeler vb.) dosya izni 0777‘de kalabilir ama arada bir bu dizini kontrol etmek ve zararlı bir dosya (orneğin .php uzantılı ve sizin yuklemediğiniz bir dosya) var mı, bakmak gerekli.
Plugins Dizini
WordPress sisteminizde acık olmasa da kullandığınız eklentilerde acıklar bulunabilir. Ziyaretcilerinizin bu dizini yani eklentilerinizi gormelerini engellemek istiyorsanız boş bir dosya oluşturup bu dosyayı index.html olarak kaydedin ve wp-content/plugins dizinine FTP ile yukleyin. Artık eklentileriniz tarayıcı vasıtasıyla gorunmezler.
Not: Guncel WordPress surumlerinde zaten boş bir dosya bulunuyor(index.php). Bulunmayanlar bu bahsettiğim boş index.html dosyasını kullanabilirler.
.htaccess Dosyası
Guvenli bir WordPress icin sağlam bir .htaccess dosyası cok onemlidir. Bu dosya genelde WordPress ’in standart yonlendirme iceriğini barındırır ama geliştirmek ve guvenliğimizi artırmak bizim elimizdedir. Bu nedenle aşağıdaki kodları .htaccess dosyanızın en ustune yapıştırmanızı oneririm. Her satırın uzerinde ilgili kodun ne işe yaradığını yazdım. Aşağıdaki kodları olduğu gibi kopyalayıp .htaccess dosyasına yapıştırarak kullanabilirsiniz. Eğer henuz bir .htaccess dosyanız yok ise boş bir dosya oluşturun, icine aşağıdaki kodları kopyalayın ve bu dosyayı sunucunuza yukleyin. Hepsi bu kadar.
PHP:
# .htaccess dosyasına erişimi engelle order allow,deny deny from all # sunucu imzasını kaldır ServerSignature Off # dosya yukleme boyutunu 10mb ile sınırlandır LimitRequestBody 10240000 # wpconfig.php dosyasına erişimi engelle order allow,deny deny from all # wp-load.php dosyasına erişimi engelle order allow,deny deny from all # dizin listelemeyi iptal et Options All -Indexes
wp-config.php Dosyası
Bu dosya WordPress gunluklerinin en onemli dosyasıdır cunku icinde veritabanına bağlantı icin gerekli bilgiler ile birlikte temel ayarlar bulunur. İşte bu nedenle bu dosyayı mutlaka korumalıyız.
wp-config.php Dosyasını Şifrelemek
Bununla birlikte wp-config.php dosyasının iceriğini şifrelemeyi unutmayın. Şifreleme icin ionCube, Zend Guard veya en basiti ve ucretsiz olan phpr.org sitesindeki aracı kullanabilirsiniz. Benim tercihim ionCube‘den yana. Tabi şunu da unutmamak gerekir ki her şifre kırılabilir. Bu nedenle hicbirine tam olarak referans olamam. Ben sadece boyle bir yolun da olduğunu bilmenizi istiyorum.
ionCube ile Dosya Şifrelemek: Aslında bu gercekten cok basit bir işlem. Once ionCube sitesine uye oluyorsunuz. Sonra kredi yuklemek icin odeme yapıp (minimum 5$ = 10 dosya) kredinizin yuklenmesini bekliyorsunuz. Krediniz yuklenince Encode (Şifrele) sayfasına gidiyor ve şifrelemek istediğiniz dosyayı gonderiyorsun. Dosya şifrelenip size geri veriliyor. Verilen dosyayı sitenize koyup direk kullanmaya başlayabiliyorsunuz.
Genişletmek icin tıkla ...
wp-config.php Dosyasının Konumunu Değiştirmek
wp-config.php dosyası cok onemli olduğu icin sadece şifrelemeye guvenemeyiz. Bununla birlikte wp-config.php dosyasının bulunduğu dizini veya dosyanın direk ismini değiştirmeliyiz. Bunu yapmak icin de sitemizin ana dizinindeki wp-load.php dosyasını acmalı ve wp-config.php yazan yerleri dilediğimiz şekilde değişirmeliyiz. Orneğin wp-content klasorune taşımak icin wp-load.php dosyasındaki wp-config.php yazan yerleri wp-content/wp-config.php şeklinde değiştirmeliyiz. İlgili satırların değişmiş hali şu şekilde olacaktır.
PHP:
if ( file_exists( ABSPATH . 'wp-content/wp-config.php') ) elseif ( file_exists( dirname(ABSPATH) . '/wp-content/wp-config.php' ) && ! file_exists( dirname(ABSPATH) . '/wp-settings.php' ) ) { /** The config file resides one level above ABSPATH but is not part of another install*/ require_once( dirname(ABSPATH) . '/wp-content/wp-config.php' );
wp-config.php Dosyasına Erişimi Engellemek
Bu dosyayı korumak icin oncelikle .htaccess dosyasına, tarayıcı uzerinden wp-config.php ve wp-load.php dosyalarına erişimi engelleme kodunu eklemeliyiz. .htaccess dosyasını incelediğimiz başlıkta bu kodu zaten vermiştim ama yine de tekrar yazayım.
PHP:
# wpconfig.php dosyasına erişimi engelle order allow,deny deny from all # wp-load.php dosyasına erişimi engelle order allow,deny deny from all
Dosyalarla İlgili Diğer Tedbirler
Guvenlik icin alınacak tedbirlerde bir sınır yok yani alabildiğiniz kadar tedbir alabilirsiniz. Orneğin klasorlere ve dosyalara erişimi engellemek icin Cpanel gibi yonetim panellerinden faydalanabilir, dilediğiniz klasorlere parola koruması ekleyebilirsiniz.
WordPress ’in wp-content klasorunun ismini değiştirmeniz de mumkun ama sitenizin kaynağına bakıldığında bu dosyanın ismi kolayca oğrenebileceği icin bunu bir tedbir olarak saymıyorum.
KAYNAK