Posts

WordPress Security Tips

It is very important to take security measures for WordPress. If you do not take your security measures, your site may be hacked or you may suffer data loss.

Security Tips During WordPress Installation

1) Create a strong user password database. It must contain uppercase letters, lowercase letters, numbers, and special characters.

2) Don’t make the database’s name and username simple and guessable names, ie database, db, admin, database.

3) WordPress asks for a prefix on the installation screen. By default, wp_ is the prefix. This is the most common of the tables in the database. Use a different prefix from the default.

4) In the user name and password selection, select a different name from admin, administrator. These are tried first because they are defaults. Likewise, create the password with upper case, lower case, number and special character so it will be strong.

Security Tips After WordPress Installation

1) Add the following codes to your .htaccess file.

# Prevent access to .htaccess file
<files .htaccess>
order allow,deny
deny from all
</files>
# remove server signing
ServerSignature Off
# limit file upload size to 10MB
LimitRequestBody 10240000
# Prevent access to wp config.php file
<files wp-config.php>
order allow,deny
deny from all
</files>
# Prevent access to wp-load.php file
<files wp-load.php>
order allow,deny
deny from all
</files>
# disable directory listing
Options All -Indexes

2) The wp-config.php file has a place called unique keys. If you have never touched it, you will see something like this.

define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');

This is very important. It encrypts cookies and password records with them. When you visit http://api.wordpress.org/secret-key/1.1/salt, WordPress will give you the necessary codes to add there. Copying and pasting are enough.

3) Use plugins as little as possible. They will slow down your site and increase their vulnerability to attack.

4) Get the themes and plugins as much as possible from reliable sources such as WordPress or code them yourself. Never use warez themes or plugins.

Most importantly, always update your WordPress.

WordPress Güvenlik Önlemleri

WordPress Kurulum Esnasındaki Güvenlik Önlemleri

1) Veritabanı kullanıcı şifresini güçlü oluşturun. Büyük harf, küçük harf, sayı ve özel karakter içermeli.

2) Veritabanı ismi ve kullanıcı ismi basit ve tahmin edilebilecek isimler yani database, db, admin, veritabanı gibi isimler olmasın.

3) WordPress, kurulum ekranında bir ön eki sormaktadır. Varsayılan olarak wp_ ön eki vardır. Bu veritabanındaki tabloların en ekidir. Varsayılandan farklı bir ön eki kullanın.

4) Kullanıcı adı ve şifre seçiminde admin, administrator’den farklı bir isim seçin. Bunlar varsayılan olduğu için ilk olarak denenmektedir. Aynı şekilde şifreyi de büyük harf, küçük harf, sayı ve özel karakter içerek şekilde oluşturun ki güçlü olsun. Mail adresi admin@siteadi.com gibi admin içeren bir mail olmasın.

WordPress Kurulumdan Sonraki Güvenlik Önlemleri

1) .htaccess dosyanıza aşağıdaki kodları ekleyin.

# .htaccess dosyasına erişimi engelle
<files .htaccess>
order allow,deny
deny from all
</files>
# sunucu imzasını kaldır
ServerSignature Off
# dosya yükleme boyutunu 10mb ile sınırlandır
LimitRequestBody 10240000
# wpconfig.php dosyasına erişimi engelle
<files wp-config.php>
order allow,deny
deny from all
</files>
# wp-load.php dosyasına erişimi engelle
<files wp-load.php>
order allow,deny
deny from all
</files>
# dizin listelemeyi iptal et
Options All -Indexes

2) wp-config.php dosyasında eşsiz anahtarlar kısmı denen bir yer vardır. Eğer oraya hiç dokunmadıysanız aşağıdaki gibi bir görünümle karşılaşacaksınız.

define('AUTH_KEY', 'eşsiz karakter kümenizi buraya yerleştirin');
define('SECURE_AUTH_KEY', 'eşsiz karakter kümenizi buraya yerleştirin');
define('LOGGED_IN_KEY', 'eşsiz karakter kümenizi buraya yerleştirin');
define('NONCE_KEY', 'eşsiz karakter kümenizi buraya yerleştirin');
define('AUTH_SALT', 'eşsiz karakter kümenizi buraya yerleştirin');
define('SECURE_AUTH_SALT', 'eşsiz karakter kümenizi buraya yerleştirin');
define('LOGGED_IN_SALT', 'eşsiz karakter kümenizi buraya yerleştirin');
define('NONCE_SALT', 'eşsiz karakter kümenizi buraya yerleştirin');

Burası çok önemlidir. Cookie ve parola kayıtlarını bunlarla şifrelemektedir. Buraya ekleyeceğiniz kodlar için http://api.wordpress.org/secret-key/1.1/salt adresini ziyaret ettiğinizde WordPress size gerekli kodları verecektir. Kopyalayıp yapıştırmanız yeterlidir.

3) Eklentileri mümkün olduğunca az kullanın. Hem sitenizi yavaşlatacaklardır hem de saldırıya açık olma durumlarını artıracaklardır.

4) Tema ve eklentileri mümkün olduğunca WordPress gibi güvenilir kaynaklardan edinin ya da siz yazın. Warez tema ya da eklentileri kesinlikle kullanmayın.

5) Bu yazımdaki güvenlik açığını kapatın.

En önemlisi ise WordPress‘inizi devamlı güncelleyin.

WordPress Xmlrpc Açığı Ve Çözümü

WordPress‘de mevcut olan bir açık vardır. Xmlrpc.php dosyası üzerinden saldırılar gerçekleşebiliyor. Normalde sadece POST ile gönderilen veriler varsa çalışan bu dosya kötü amaçlı kullanılabiliyor. DDoS saldırıları yapılabiliyor.

Açık olup olmadığını anlamak için sitenizde şöyle bir url’ye gidin “www.siteniz.com/xmlrpc.php”. Eğer aşağıdaki resimdeki gibi bir sonuç alıyorsanız sizde de bu açık mevcut demektir.

xmlrpc-securityBu açığı kapatmak için ise .htaccess dosyanıza aşağıdaki kodları eklemeniz yeterlidir.

# Begin Protect xmlrpc
RedirectMatch 403 /xmlrpc.php
# End Protect xmlrpc.php