WordPress Güvenliği
Web sitesi güvenlik önlemleri hakkında geçtiğimiz günlerde “Web Sitesi Güvenliği” hakkında bir yazı hazırlamıştım.
Hepimizin kullandığı WordPress hakkında döküman niteliği taşıyabilecek bir yazı daha hazırladım.
WordPress hakkında webmaster seviyesinde yapılabilecek tüm etkili ve başarılı güvenlik önlemleri bu çalışmadan temin edebilirsiniz.
Unutulmamalıdır ki web sitesi ve sunucularda güvenlik, bir iki ayarla yapılabilecek bir şey değil, kavramsal bir bütündür.Yani bir çok protokol kullanarak ördüğünüz ağın kendisidir.
A. Veritabanı Güvenliği
Veritabanına erişim ve bunu sağlayacak erişim noktaları, iyi denetlenmeli ve güvenli hale getirilmeldiri.
Genelde kurulum sırasında belki de çok umursanmayan bir noktadır bu konu.
A.1: MySQL/User Adları
Veritabanı ve kullanıcı adını siteniz_blogum şeklinde belirlemek yerine siteniz_b1l0g4u8m şeklinde oluşturun.
Veritabanı ve kullanıcı adını farklı isimlerle oluşturun.
Özellikle veritabanı kullanıcı şifresi .xk*dE!lm(X% gibi kolayca kırılamayacak basit olmayan türden güçlü bir şifre olmalıdır.
A.2: Table Prefix
Kurulum esnasında default olarak karşımıza çıkan wp_ tablo ön ekini değiştirin.
Bunu da yine LKIdApKBlfar_ gibi tahmin edilemeyecek karmaşık bir kelimeyle belirleyin.
A.3: MySQL User Privileges
Veritabanı kullanıcısının veritabanı üzerinde hangi yetkileri olacak bunları belirler.
Genelde umarsızca mysql kullanıcısına full yetki verilir.Bu çok gereksizdir.
WordPress’in tüm fonksiyonlarını çalıştırabilmesi için WordPress Codex‘inde de belirtildiği üzere, veritabanı kullanıcısının SELECT, INSERT, UPDATE ve DELETE yetkilerine sahip olması yeterlidir.
Yine de veritabanı optimizasyonu yapan eklentiler gibi bazı eklentilerde sorun yaşarsanız yetkileri SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER seviyesine çıkarabilirsiniz.
Ancak hiç bir zaman veritabanı kullanıcısına full privileges vermeyin.
A.4: Admin Kullanıcısı
Alışkanlık olarak yönetici kullanıcı adını admin olarak belirlemeyin, bu adı kullanıyorsanız hemen değiştirin.
PhpMyadmin üzerinden aşağıdaki sorguyu çalıştırarak değiştirebilirsiniz.Yeni admin kullanıcı adınızı sorgu içinde newuser kısmından kendinize göre belirleyin.
UPDATE wp_users SET = 'newuser' WHERE user_login = 'admin';
PhpMyadmin üzerinden ilgili tabloyu elle düzenlemek için ;
B. Ayar Dosyası
WordPress ayar dosyası wp-config.php ‘dir.Tüm önemli bilgiler özel ayarlarınız burada saklanır.
Dolayısıyla ayar dosyasını korumak, bu dosyayı sadece WordPress çekirdeğinin kullanmasını sağlamak çok önemlidir.
B.1: Dosyasının Yerini Değiştirin
Ayar dosyanızı wp-config.php mümkünse public_html dizinizin bir üst dizinine çıkartın.
Sisteminiz ayar dosyanızın yerini belirleyip çalışmaya devam edecektir.
Yazma izinlerini kaldırın chmod 400 iyi bir değerdir.Ayar dosyanıza yazım yapması gereken bir eklenti kuracaksanız değeri chmod 604 ‘e yükseltip işlemlerinizi tamamlayınca tekrar chmod 400 ‘e düşürün.
B.2: Düzenleme Yetkisini Kaldırın
Ayar dosyasına ekleyeceğiniz bu kod ile, WordPress sistemi içinden dosyaların düzenlenmesini engelleyin.
define('DISALLOW_FILE_EDIT', true);
B.3: Doğrulama Anahtarlarını Güncelleyin
Ziyaretçi çerezlerinden tutun, veritabanına işlenen şifre bilgileri gibi güvenlikle doğrudan alakalı güzel bir özelliktir.
Tek yapmanız gereken şuradan bir doğrulama kümesi edinerek, wp-config.php dosyanızda bulunan mevcut doğrulama kümesiyle güncellemek.
B.4: Ayar Dosyasını Kriptolayın
İçinde önemli bilgi ve ayar barındıran bu dosyayı okunma ihtimaline karşı kriptolayın.
Bu dosyaların içeriğin okunsa bile kriptolandığından verilere ulaşmak için decode edilmesi gerekir.
Bu hizmeti veren BTT-Crypt gibi bazı ücretsiz servis sitelerini internetten bulabilirsiniz.
Ioncube gibi ücretli bir servisle de encode edebilirsiniz.
C. Tema Güvenliği
Bu düzenlemeler temanızın functions.php dosyası üzerinden alınabilecek önlemlerdir.
Her tema değiştirdiğinizde yeni temanızda bu düzenlemeyi yapmayı unutmayın.
C.1: Sürüm Bilgilerini Kaldırın
WordPress sitenizin kaynak koduna wp_head() fonksiyonu üzerinden eklenen sürüm bilgisini temanızın functions.php dosyasına bu kodu ekleyerek kaldırın.
remove_action( 'wp_head', 'wp_generator'); // Removes the WordPress version i.e. - WordPress 2.8.4
RSS yayınları üzerinden de kaldırmak için şu kodu kullanın ;
//Remove generator name and version from your Website pages and from the RSS feed.
function completely_remove_wp_version() {
return ''; //returns nothing, exactly the point.
}
add_filter('the_generator', 'completely_remove_wp_version');
WordPress sistem dosyaları, eklenti dosyaları, tema dosyalarınız arasından herhangi bir sürüm bilgisini açık eden readme.html, License.txt gibi dosyalar varsa bunları kaldırın.
C.2: Giriş Hatalarını Göstermeyin
Giriş sayfanızda yanlış kullanıcı adı / şifre uyarılarını göstermeyin.
Bunun için temanızın functions.php dosyasına bu kodu ekleyin ;
add_filter('login_errors',create_function('$a', "return null;"));
D. Flood Koruma
Flood özetle üst üste yapılan istek demektir, brute force atakları, spam ataklar, uzaktan yapılan isteklerin tümüne flood saldırısı gözüyle bakabiliriz.
D.3: Brute Force Atakları Önleyin
Brute Force yönetmiyle şifrenizin kırılması ihtimaline karşın daha önce yayınladığım “WordPress Sitenize Gelen Brute Force Ataklar” adlı yazımı inceleyin.
D.4: Refere Edilmemiş İstekleri Engelleyin
Brute force, spam gibi istekler genelde uzaktan ve doğrudan çalıştırılan bir bot ile yapılır.
Siteniz içinden refere edilmeyerek bir yere ulaşan istekler şüphelidir.Bu tür sayfalar için uzaktan, doğrudan yapılacak istekleri engellemek iyi bir çözümdür.
Bir ziyaretçi doğrudan wp-comments-post.php ve wp-login.php sayfasına istek göndermez.Yazılara yorum yapacak bir ziyaretçi yazı içinden yapar, giriş yapacak kullanıcı ise wp-admin dizininden yönlenerek wp-login.php sayfasına ulaşır.
Sitenize göre aşağıda ki kodları düzenleyip htaccess dosyanıza ekleyerek refere edilmemiş istekleri engelleyebilirsiniz.
# Spam + Brute Force
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login).php*
RewriteCond %{HTTP_REFERER} !.*siteadresiniz.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</ifModule>
# Sadece Brute Force
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-login.php*
RewriteCond %{HTTP_REFERER} !.*siteadresiniz.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</ifModule>
# Sadece Spam
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*siteadresiniz.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</ifModule>
D.5: Akısmet Kullanın
Akısmet sitenize yapılacak spam yorumları tespit etmeye, engelleyeme yarayan bir mekanizmadır.
WordPress kurulumuyla birlikte default olarak gelen bu eklentiyi aktif etmek için bir Akismet anahtarı (API Key) edinmelisiniz.
WordPress.com hesabıyla ücretsiz olarak bu servisten yararlanabilirsiniz.
Akismet anahtarı edinmek için sitesinden başvurabilirsiniz.
D.6: Kötü Botları Engelleyin
Sitenize, bad bots list olarak artık fişlenmiş ve hepimizin bildiği zararlı botları engelleyin.
E.Erişim Kısıtlama
ModSecurity, Htaccess ve chmod kuralları ile her türlü noktaya erişim ve isteklerin nasıl yapılacağına siz karar verin.
E.1: Hataları Gizleyin
Sisteminizde hatalar oluşabilir, önemli olan bunları sadece sizin görüyor olmanızdır.Hatalar sisteminizin hangi noktalarda kararsız olduğunu gösterebilir.
Özellikle arama motorlarında bu hataların izlerine rastlanır, arama motorları kararsız sistemleri tespit etmek için iyi bir (av alanı) platformdur.
Mümkün olduğunca hataları gizlemelisiniz.Bunu php için hata gösterimini kapatarak yapabilir, hata dosyalarının dışarıdan okunmasını engelleyebilir, hatta hiç hata tutulmamasını sağlabilirsiniz.
# Hatalari Gizle
php_flag display_errors off
php_flag html_errors off
# ErrorLogu Komple Kapat
php_flag log_errors off
<files error_log>
order allow,deny
deny from all
</files>
E.2: Dosya Erişimini Yasaklayın
Aşağıda ki şekilde bazı dosyalara erişimi engelleyin.Böylece bu dosyalara gelen istekler 403 isteği olarak geri dönecektir.
<files wp-config.php>
order allow,deny
deny from all
</files>
<files wp-load.php>
order allow,deny
deny from all
</files>
<files error_log>
order allow,deny
deny from all
</files>
Htaccess’in kendisini koruyun.Htaccess dosyanıza eklentileriniz yazım yapıyorsa 604 yapmıyorsa 404 verebilirsiniz.
Tamamen elle müdahele ediyorsanız 400 vermeniz yeterlidir.Böylece host kullanıcısı dışında kimse bu dosyayı değiştiremez.
<files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
<files .htaccess>
order allow,deny
deny from all
</files>
E.3: Dizin Listelemeyi Kapatın
Dizin listeleme sitenizde dizinlerin tarayıcı tarayından “siteniz.com/dizin” şeklinde girildiğinde o dizinde bulunan öğelerin listelenmesidir.
Listelenmesini istemediğiniz dizinlere boş bir index.html dosyası oluşturabilirsiniz.
Htaccess dosyasınıza şu kodu ekleyerek komple dizin listelemeyi kapatabilirsiniz ;
Options -Indexes
E.4: Admin Erişimini Sınırlayın
Çoklu kullanıcılarınız yoksa admin panelini sadece siz kullanıyorsanız bu dizine ip tabanlı erişim sınırı getirebilirsiniz.
<Directory /home/user/public_html/wp-admin>
order allow,deny
deny from all
allow from 10.0.0.1 # Tek ip adresine izin ver
allow from 192.168.0.0/24 # Komple classa izin ver
</Directory>
E.5: Chmod Organizasyonu
Sistemde hangi dosyanın kim tarafından açılabileceğini, yazılabileceğini ve okunabileceğini chmod izinleri belirler.
Amaçsızca bolca verilmiş gereksiz chmod izinleri büyük güvenlik açığına neden olabilir.Kullanıcı alışkanlıkları da göz önünde bulundurulduğunda genelde bu konuda hep sıkıntı yaşanır.
Sağlıklı şekilde çalışabilmeleri için dosyaları 404, dizinleri ise 505 olarak planlamak yeterlidir.
Yazma/silme işlemleri için dosyaları 604, dizinleri ise 705 olarak organize edin.
Seçenek 1 : Konsol yönetimine sahipseniz komutlarla toplu olarak chmod düzenlemesi yapabilirsiniz.
find /home/kullanici/public_html/ -type d -exec chmod 505 {} ;
find /home/kullanici/public_html/ -type f -exec chmod 404 {} ;
Seçenek 2 :Ftp programınızla da toplu olarak düzenleme yapabilirsiniz.
Toplu düzenleme sonrası yazma/silme yapılacak dosya ve dizinlerin chmod değerlerini özel olarak ayarlamayı unutmayın.
E.6: Upload Alanları
Upload dizinleri resim ve medya dosyalarını depo etme yada ziyaretçinin dosya indirmesi amacıyla kullanılır.
Genellikle scriptinizde bulunan açıklarla bu dizinlere zararlı dosyalar yüklenir ve çalıştırılmak istenir.Bu dosyalar üzerinden sisteminize sızılabilir.
Özetle upload işlemlerini amacına uygun şekilde organize etmelisiniz.
Upload dizinini sadece resim yükleme alanı olarak kullanıyorsanız bu dizinde başka tür dosyaların (php, zip, rar, docx vb.) çalışmasına izin vermemek iyi bir planlama olacaktır.
Upload dizininde oluşturacağınız bir .htaccess dosyası ve kurallarıyla dışarıdan erişimi sınırlayabilirsiniz.Örneğin bu dizinde oluşturacağınız bir htaccess dosyası ile php uzantılı dosyaların çalışmasını engellemek ;
<files *.php>
order allow,deny
deny from all
</files>
Hatta işi bir adım ileriye götürerek WP-CONTENT dizini içinde de altta ki örnekle sadece bazı dosyalara izin verebiliriz.
Bu dizin için tema ve eklenti gibi içerikler bulunur.Dolayısıyla dışarıdan php olarak bu dosyalar çalıştırılmaz.Bu dosyaları WordPress çekirdeği kendi içinde yorumlar.
order deny,allow
deny from all
<files ~ ".(xml|css|jpe?g|png|gif|js)$">
allow from all
</files>
Bu sayede wp-content dizini altında belirtilen uzantılar dışında herhangi bir dosya çalıştırılamaz.
E.7: Form Güvenliği
D. Flood Koruma başlığı altında belirttiklerim dışında özel olarak iletişim, yorum ve benzeri amaçlarla oluşturduğunuz formlar varsa bunları flood, spam ve brute force ataklara karşı koruyun.
Bu formlara spam doğrulama (chapta) özelliği ekleyerek bir saldırı aracı olarak hizmet etmesini önleyin.
E.8: Smtp Kullanın
WordPress üzerinden gönderilecek tüm mail iletişimi için php mail() fonksiyonunu kullanmak yerine smtp kullanabilirsiniz.
WordPress default olarak bu seçeneği sunmuyor ama bir çok ücretsiz eklenti bulunmaktadır.Güvenilir görünen “WP Mail SMTP” adlı eklentiyi indirip kullanabilirsiniz.
Örnek ayarlar resimlerde gösterildiği gibidir, sunucu adresi ve bağlantı “Ssl/Tls” durumu mail servisinize göre farklılık gösterebilir.
Mail hesaplarınız web sitenizle aynı sunucudan çalışıyorsa bağlantı adresini “localhost” tanımlamak işlem esnasında bağlantı süresini kısaltacağından hız avantajı olacaktır.
Çok karşılaştığım için belirtmeliyim ; Eğer smtp kullanacaksanız sitenize özel php mail fonksiyonunu tamamen kapatmak isteyebilirsiniz.Böylece yüklenme olasılığı olan bir script üzerinden php’nin bu fonksiyonu kullanılarak spam mail saldırı yapılmaz.
Konuyla bağlantılı şu yazılarım da ilginizi çekebilir ;
F.İpuçları, Tavsiye ve Öneriler
F.1: Gizlilik
Ftp ve cPanel gibi önemli alanların giriş bilgilerini kimseyle paylaşmayın, bu muhakkak bir insan olması gerekmiyor.Bir program da olabilir, bir programın yada tarayıcının bu bilgileri hatırlamasına izin vermeyin.
F.2: Hataları Takip Edin
Hata loglarını takip edin.Sisteminizde oluşan error_log dosyalarını takip ederek oluşan hataları inceleyerek haberdar olun.Böylece hem hataları düzeltirsiniz hemde hata döndüren şüpheli işlemler hakkında bilginiz olur.
F.3: SSL Kullanın
Mümkünse sitenizde SSL kullanmanın bir çok avantajı olacaktır.
Kullanıcı girişinde zorunlu ssl yönlendirmesi için ayar dosyanıza şu kodu ekleyin ;
define('FORCE_SSL_ADMIN', true);
Sitenizde komple ssl’i aktif etmek isterseniz ;
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Hatta üstte ki örnekten farklı olarak 80 portuna gelecek olan tüm istekleri zorunlu şekilde ssl bağlkantısına çevirin.Bunu şu kodlarla yapabilirsiniz ;
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
# Ozel SSL'e takilmayan bir sayfa isterseniz alt satir ornek.
# RewriteCond %{REQUEST_URI} !^/busayfaya/sslzorunlulugu/yoktur.php
RewriteRule ^(.*)$ http://askinyilmaz.com.tr/$1 [R=301,L]
F.4: Kullanıcı Kaydını Kapatın
Sitenizde üyelik desteği vermiyorsanız kullanıcı kaydını yasaklayın.Bunu admin panelinden gelen ayarlar kısmından yapabilirsiniz.
F.5: Güncelleyin
Her yeni güncellemede yeni özelliklerin gelmesinin yanında eski sürüm hataları giderilir.Bu açıkları WordPress’in kendi açıklarını kapatmak için takip etmeniz gereken bir yoldur.
Tema ve Eklentileri Güncelleyin : WordPress’i güncel tutsanız bile tema ve kullandığınız eklentileri de güncellemelisiniz.
Güncellenmeyen her site hacklenir mi ? Her ay bir çok WordPress sitemi güncellemek çok zaman alıyor.
Hayır elbette ama açık barındırır.Sizin yazmadığınız ve kodlara 100% hakim olmadığınız bir sisteme nasıl güvenirsiniz ?
Bu makalede anlattığım bir çok ayrıntı da zaten bununla ilgili webmaster tarafında alınabilecek önlemlerdir.
F.6: WordPress Yayınlarını Takip Edin
WordPress News yayınlarını takip edin.Böylece bir açık yada sorun tespit edilirse hızlı şekilde bilginiz olabilir.
F.7: Orjinal Kaynak Kullanın
WordPress, tema ve eklentilerde orjinal kaynaklar kullanın.Farklı indirme platformlarından bu tür dosyaları indirip ftp alanınıza atıp çalıştırmayın.
F.8: Güvenilir Seçimler Yapın
Özellikle tema ve eklenti seçimlerinizde indireceğiniz öğelerin itibarını internetten araştırın.Bu dosyaların iyi ve kötü yönlerini, kullanıcı yorumlarını araştırın.
Kaba tabirler her bulduğunuz dosyayı ftp dizine yüklemeyin.
Yapacağınız tema ve eklentilerin açık kaynak olmasına dikkat edin.
Ücretli olarak sağlanan bir eklenti,tema (genelde kriptolanır) kullanmıyorsanız, içinde şüpheli veya kripto edilmiş kodlar varsa onu kullanmayın.
F.9: Elle Kurulum Yapın
WordPress admin panelinden bir şey kurmak için ftp yetkisi vermeyin!
Admin panelinden eklenti ve tema dizininden gördüğünüz her öğeyi otomatik olarak kurmayın.
Kuracağınız tema ve eklentilerin açık kaynak olmasına dikkat edin ve hakkında bilgi toplayın.
* Bknz:F.8: Güvenilir Seçimler Yapın
Kurmak için dosyaları bilgisayarınıza indirip içeriğine şöyle bir göz atın.Kodları yorumlayacak programlama bilginiz olmasa bile, içeriklerin açık kaynak olup olmadığını, şifrelenmiş bir şeylerin olup olmadığını en azından kontrol edin.
Kuracağınız tema, eklenti gibi öğelerin WordPress Core’u üzerinden doğrudan veritabanınıza erişim yapabileceğini unutmayın.
F.10: Yedek Alın
Yedek alma alışkanlığınız yoksa edinmelisiniz.Bir sorun anında aldığınız yedekler hayat kurtarabilir.Çalışacağınız hiç bir host şirketi yedek sorumluluğunu 100% üsteleneceği bir sözleşme imzalamaz.Dolayısıyla kullanıcı olarak sizin bilinçli olmanız gerekir.
En azından veritabanınızın yedeğini alacak bazı eklentiler kullanabilir, sunucu yönetimine sahipseniz sunucuda bu işi yapacak scriptler oluşturabilirsiniz.
Yedeklemeyi mevcut host üzerinden yada uzak bir host üzerine aldırabilirsiniz.
Eğer hiç bütçesi olmayan bir webmaster iseniz, internette ücretsiz cloud storage hizmeti veren servislerden birer hesap oluşturup yedeklerinizi bu servislerde saklayabilirsiniz.
Hatta bu servislere otomatik yedekleme bile yapabilirsiniz.
Örneğin DropBox servisinin kullanımı için geliştirilen şu eklenti kullanılabilir.
F.11: Güvenli Hosting Seçimi
Güvenli hosting bir hazır paket değildir!
Hacking sorunu yaşıyorsanız yaşadığınız sorunları yeni hosting firmanıza düzgünce açıklayıp size uygun bir plan önermelerini isteyebilirsiniz.Bu bir shared hizmet yada sunucu türü bir hizmet olabilir.
Sunucu hizmeti almak istiyorsanız sunucu özel güvenlik optimizasyonlarının yapılmasına dikkat edin.
Temel olarak şu gibi özellikler mutlaka olmalıdır ;
- Sunucuda kullanıcı dizinleri arası geçiş yapılması asla mümkün olmamalı.
- Perl, cgi, bash script gibi diller çalıştırılması mümkün olmamalı.
- ModSecurity gibi aktif şekilde çalışan bir güvenlik kural zinciri olmalı.
Exprimantal Olarak
Php çalışma anına php.ini, htaccess gibi yöntemlerle müdahele edilmesi mümkün olmamalı.Genelde shared hosting sunucularında her siteyi memnun etmek için bu tür izinler çalışır.Ancak bu imkanın olması o sunucunun tamamen güvensiz olduğu anlamına gelmez!
Seçenek olması açısından ben bunu şöyle açıklayabilirim sanırım ; Sürekli hacklenip artık psikolojisi bozulmuş bir kullanıcı için, “Doktora git, yazılımcıdan destek al!” demek yerine sizinde root olarak psikopatça protokeller oluşturma imkanınız vardır.
Başka Neler Yapabiliriz ?
Daha bir çok şey yapabilirsiniz, bu tamamen sizin hayal gücünüze bağlı.
Sunucu yönetimine sahipseniz çok daha psikopat önlemler alabiliriz.
Hacking zevkli bir oyundur, sıkıldığınız zaman vazgeçersiniz.
Güvenlik ise dairesel bir zincir, aldığınız her önlem bu zincirin bir halkasıdır.
Bu oyunda önemli olan saldırganın canını sıkıp oyunu bırakmasını sağlamak.
Bunu da güvenlik adına oluşturduğunuz zincire yeni bir halka ekleyerek yaparsınız.
Sunucu yönetimine sahip değilseniz bile en azından php’nin bazı çalışma kurallarına müdahele edebilirsiniz.
Htaccess dosyasını şu tarz önlemler oluşturabilirsiniz.
# Shell Script Engelle
Options -ExecCGI
AddHandler cgi-script .pl .py .jsp .sh .cgi
# Safe Mod Aktif
php_flag safe_mode on
php_flag register_globals off
# Sunucu imzasini kaldir
ServerSignature Off
# Admin Mailleri
SetEnv SERVER_ADMIN email@address.com
# Ozel Hata Sayfalari
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 500 /500.html
Çok faydalı bir makale olmuş, wp-hacking’deki neredeyse tüm taktiklere karşı gard alınmasını sağlıyor. Teşekkür ederim