WordPress hacklemek çok da kolay değil aslında. Ancak öncesinde şunu bilmek gerekiyor, hiçbir sistem tam anlamı ile güvenli değildir. Dolayısı ile, sisteminizin güvenliğini sağlarken, bir hacker gibi düşünmek gerekiyor. Tüm olasılıkları düşünmek belki de mümkün değil. Ancak hacklenmemek için tüm olasılıklar silsilesini öngörebilmek gerekiyor. WordPress hacklemek, açık kaynak kodlu olduğu için, birçok kişi tarafından kolay görülebiliyor ve hatta bu yüzden WordPress kullanmayanlar bile var. Bu yaklaşım elbette doğru değil. Gerekli WordPress güvenlik önlemleri alındıktan sonra korkmanıza pek gerek kalmayacaktır.
AYRICA: WordPress'te Bir Bileşeni Yalnızca Ana Sayfada Gösterelim
Fakat, WordPress'in inceliklerini de bilmek gerekiyor. WordPress güvenliğini sağlamak için ise birçok spesifik faktör bulunuyor. Yani sunucu güvenliği, FTP güvenliği, WordPress'in kendi güvenliği ve veritabanı güvenliği gibi birçok kıstas söz konusu. Biz de elimizden geldiğince, siz değerli ziyaretçilerimiz için detaylı bir, WordPress Güvenlik Rehberi hazırlamaya karar verdik.
WordPress kullanıcıları için faydalı bir kaynak olmasını diliyoruz öncelikle. İçerik biraz uzun olabilir, bu yüzden kahvenizi alın ve yavaş yavaş, anlamlandırarak okumaya özen gösterin lütfen. Ek olarak, içeriğimizin en sonunda, sizlerin de tavsiyeleri var ise, yorum göndererek, herkes ile paylaşmayı düşünebilirsiniz. Dilerseniz, şimdi içeriğimize start veriyoruz.
AYRICA: WordPress "wp_options" Tablosu ve Önemi Üzerine
1) Plesk Obsidian & cPanel Güvenliğini Sağlamak
Bildiğiniz gibi server panelleri arasında Plesk Obsidian ve cPanel hem popüler hem de ücretli yazılımlar. Dolayısı ile bu panellerin güvenliğini sağlamak için, çok fazla incelik söz konusu. Benim sizlere tavsiye edebileceğim konular ise, panellerinizin şifresini oldukça karmaşık, ezberlenmesi imkânsız bir şekilde belirlemeniz yönünde olacaktır.
Bunun için, Avast'ın Rastgele Parola Oluşturucu servisini kullanabilirsiniz. Bu şekilde olası bir saldırganın, panelinize erişim sağlaması oldukça zor olacaktır. En azından brute force saldırılarından korunmuş olacaksınız.
Server'ınızı aldığınız firmaya da bir ticket açarak, genel anlamda panel güvenliği hakkında bilgi almanızı tavsiye ederim. Yani paneliniz için gerekli modüller hakkında bilgi alabilir, güvenlik zafiyeti oluşturabilecek bir konfigürasyonunun aktive olup olmadığını teyit edebilirsiniz. Panel güvenliğindeki en önemli kıstas ise, kesinlikle şifredir.
AYRICA: WordPress Resimleri HTTPS Uyumlu Yapmak (Otomatik)
Bildiğiniz gibi panel kullanıcı adını günümüzde de değiştirebilmek mümkün kılınmamıştır. Bu yüzden şifrenizi oldukça dikkatli seçmeniz gerekmektedir. Bu arada, Plesk Obsidian ve cPanel'in her zaman en son sürümünü kullanmanızda da fayda var. Gelen son güncellemeleri düzenli takip edin ve güncellemelerinizi de düzenli olarak yapın lütfen.
2) Veritabanı (Database) Güvenliğini Sağlamak
Eğer ki, bir sanal sunucu kullanıyorsanız, size özel bir IP adresi vardır. Standart olarak ise, 3306 portu (MySQL) dışarıya açıktır. Yani farklı yazılımlar ile de giriş yapılabiliyor. Bu yüzden ilk iş, sunucu firmanızdan, MySQL portunu dışarıya kapatmak yönünde destek almanız olacaktır.
Veritabanınız olası saldırganlardan azami seviyede korunmuş olacaktır. Elbette, WordPress için veritabanı kullanıcı adı ve şifresi de çok önemlidir.
Bu bilgileri de en zor şekilde, karmaşık ve hatırlanması zor bir biçimde (en az 50 karakter) yapabilirsiniz. Bu arada, veritabanınızı dışarıya kapatmanız, sitenizi bozmaz. Yani siz yine phpMyAdmin ile tablolarınızı check edebileceksiniz. Sadece dışarıdan farklı yazılımlar ile veritabanınıza giriş yapılamayacak, kontrol edilemeyecek ve bu durumda elbette, güvenlik bazında kesinlikle size artı bir puan kazandıracaktır.
AYRICA: WordPress "ads.txt" Dosyası Oluşturma Nasıl Yapılır?
Veritabanı güvenliği çerçevesinde, düzenli olarak phpMyAdmin ile komple veritabanı yedeklemesi de yapmanızı tavsiye edebilirim. Herhangi bir problemde, çalışan ve stabil veritabanınıza geri dönüş sağlarsınız bu şekilde.
Veritabanınızın dışarı açık olup olmadığını, buraya tıklayarak, IP adresinizi, 3306 portu ve güvenlik doğrulamasını girerek, kontrol edebilirsiniz. Veritabanı yedeklemesini ise, phpMyAdmin sayfasındaki Dışa aktar kısmından yapabileceğinizi hatırlatmama izin verin lütfen.
3) FTP (Site Dosyaları) Güvenliğini Sağlamak
WordPress kullanıcılarının büyük bir bölümü FileZilla programı ve FTP aracılığı ile dosyalarına erişim sağlar. Bu yüzden kesinlikle FTP kullanıcı adınızın ve şifrenizin de karmaşık olmasına dikkat etmelisiniz.
AYRICA: WordPress "User ID" Öğrenme Nasıl Yapılır?
FTP'nizin ise sadece SSL desteğine sahip olmasını sağlayın ve sadece bu yöndeki girişlere izin verin. Yani normal ve güvensiz erişimlere kesinlikle izin vermeyiniz. Bu durum, kullanıcı bilgilerinizin şifrelenmesini sağlayarak, FTP bağlantısı sağladığınızda, daha da güvende olmanızı sağlayacaktır.
En önemli noktalardan bir diğeri ise, FTP'deki dosyalarınızın CHMOD değerleridir. Klasörlerin 755 olmasına ve dosyalarınızın ise 644 CHMOD değerlerine sahip olmasına dikkat ediniz. Böylelikle, yazılabilirlik bazında önlem alarak, olası bir saldırganın işlem yapmasını zorlaştırmış olacaksınız.
4) WordPress Güvenliğini Sağlamanın Yolları
WordPress Kullanıcı Adını Değiştirmek
Birçok WordPress kullanıcısı giriş kullanıcı adı olarak "admin" veya "ad-soyad" şeklinde kullanım sağlıyor. Bu durum, olası saldırganların işini kolaylaştırabilir. Fakat, WordPress'te giriş kullanıcı adını panel vasıtası ile de değiştirmek mümkün değildir. Bu yüzden veritabanı üzerinden aksiyon almak gerekiyor. Veritabanına direkt müdahale sağlamadan, aşağıdaki kodu temanızın functions.php dosyasına eklemeniz de yeterli olacaktır.
Kullanıcı ID'nizi ve yeni kullanıcı adınızı yazıp, kodu ekleyin. Akabinde, sitenizin ana sayfasında iken, bir kere sayfayı yenileyerek, kodun çalışmasını sağlayın. Bu şekilde, kullanıcı adınız güncellenecektir ve elbette ilgili kodu ardından hemen kaldırabilirsiniz.
global $wpdb;
$user_id = ID Numaranız;
$wpdb->update($wpdb->users, array('user_login' => 'Yeni Kullanıcı Adınız'), array('ID' => $user_id));
WordPress "wp-login.php" Adresini Değiştirmek
WordPress'in varsayılan giriş URL'si bildiğiniz gibi, wp-login.php'dir. Bu durum, olası saldırganların da işini kolaylaştırmaktadır. Bu yüzden, kalıcı olarak wp-login.php adresini değiştirmek yararınıza olacaktır. Bunun için eklenti kullanmak yerine, direkt çekirdek dosyalara müdahale sağlamak, yani manuel aksiyon almak, daha sağlıklı olabilmektedir. Bu yüzden öncelikle, wp-login.php dosyasının adını dilediğiniz giriş URL'si ile değiştirin.
Akabinde ilgili dosyayı açarak, wp-login.php araması yapın ve tüm çıkan sonuçları, yeni giriş URL'niz ile değiştirin. Bu şekilde artık wp-login.php çalışmayacak ve giriş için yeni giriş URL'nizi kullanabileceksiniz. Ancak site giriş ve çıkışlarda da sorun olmaması için, aşağıdaki kodu temanızın functions.php dosyası içerisine eklemeniz gerekmektedir. Kırmızı alanı ise, yeni giriş URL'niz ile değiştirmeyi unutmayınız.
add_filter('login_url', 'wplogin_filter', 10, 3);
add_filter('logout_url', 'wplogin_filter', 10, 3);
function wplogin_filter( $url, $path, $orig_scheme ) {
$old = array( "/(wp-login\.php)/");
$new = array( "yeni-giris-sayfaniz.php");
return preg_replace( $old, $new, $url, 1);
}
WordPress "wp-admin" Adresini Değiştirmek
WordPress için belirlenen standart yönetim paneli URL'si "wp-admin" şeklindedir. Dolayısı ile saldırganlar, brute force saldırı teknikleri denerken, bu durum işlerine yarayabilir. Bizim amacımız ise, saldırganların işini zorlaştırmaktır. Bu yüzden wp-admin adresini değiştirmek çok mantıklı bir yaklaşım olacaktır. WordPress wp-admin adresini değiştirmek için öncelikle çerezlerde sorun yaşamamak adına, aşağıdaki kodu wp-config.php dosyanız içerisine ekleyin.
define('WP_ADMIN_DIR', 'yeni-panel-adresi');
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);
Ardından, yönlendirme işleminin sorunsuz gerçekleşmesi için ise, ana dizinde yer alan .htaccess dosyanız içerisine, aşağıdaki kodu ekleyin. Elbette, kodlarda yer alan kırmızı renkli alanları, kendi istediğiniz şekilde değiştirmeyi de unutmayın.
RewriteRule ^yeni-panel-adresi/(.*) wp-admin/$1?%{QUERY_STRING} [L]
Son olarak ise, wp-admin URL'sini artık kullanmayacağınız için, onu da 404 sayfasına veya dilediğiniz bir sayfaya yönlendirebilirsiniz. Bunun için ise, aşağıdaki kodları temanızın functions.php dosyası içerisine ekleyebilirsiniz.
add_filter('site_url', 'wpadmin_filter', 10, 3);
function wpadmin_filter( $url, $path, $orig_scheme ) {
$request_url = $_SERVER['REQUEST_URI'];
$check_wp_admin = stristr($request_url, '/wp-admin/');
if($check_wp_admin){
wp_redirect( home_url( '404' ), 302 );
exit();
}
$old = array( "/(wp-admin)/");
$admin_dir = WP_ADMIN_DIR;
$new = array($admin_dir);
return preg_replace( $old, $new, $url, 1);
}
WordPress "wp-login.php" Adresini Şifrelemek
Yukarıdaki adımlarda wp-admin ve wp-login.php adresini değiştirme konusunda bilgi edinmiştik. Şimdi ise, wp-login.php adresini şifreleme konusunda bilgi vermek istiyoruz. Olası saldırganlar, web sitenizin giriş URL'sini öğrenir ise, bu durumda brute force saldırılarını denemeye çalışabilirler. Bu yüzden, wp-login.php adresindeki giriş formunu, yeni bir URL ile şifreler isek, saldırganlar da bu URL'yi bilmeden, giriş formunu göremeyeceklerdir. Bu durum, sitemiz için ek bir güvenlik katmanı sağlamış olacaktır. Bunun için ise, aşağıdaki bağlantıya tıklayarak, ilgili içeriğimize ulaşarak, ilgili yönergeleri takip etmenizi tavsiye ederiz.
Yukarıdaki işlemleri gerçekleştirmek, bizim WordPress güvenliği açısından alabileceğimiz yeterli önlemlerdir. Ancak bizim geliştirdiğimiz, derlediğimiz veya düzenlediğimiz daha birçok yöntem daha mevcut durumda. Aşağıdaki bağlantılara giderek, WordPress güvenliği sağlamak için, ilgili manuel güvenlik işlemlerini de uygulamanızı tavsiye ederiz. Bu şekilde, sitenizin eklentisiz bir şekilde oldukça güvenilir bir hâle gelmesini sağlayabilirsiniz.
WordPress Güvenlik Önlemleri (Faydalı İçerikler)
- WordPress Giriş Sayfasına Güvenlik Sorusu Ekleyelim (Eklentisiz)
- WordPress'te Kullanıcı Silme Özelliğini Kapatalım
- WordPress'te Kullanıcı Düzenleme Özelliğini Kapatalım
- WordPress'te Yeni Üyelik Oluşturulmasını Tamamen Engelleyelim
- WordPress'te Kullanıcı Yetkisi Değiştirmeyi Engelleyelim
- WordPress'te Parola Sıfırlama Sayfasını Devre Dışı Bırakalım
- WordPress'teki "uploads" Klasörünün PHP Çalıştırmasını Engelleyelim
- WordPress'teki "wp-includes" Klasörünü Koruma Altına Alalım
- WordPress'te Yüklenebilecek Dosya Uzantılarını Kısıtlayalım
- WordPress'te "wp-admin" URL'sinin Yönlendirmelerini Kapatalım
- WordPress'te HTTP Header'dan "xmlrpc.php" Kaldırmak
- WordPress'te ".htaccess" Dosyası ile Güvenlik Önlemleri Almak
WordPress Güvenlik Rehberi adlı içeriğimiz çerçevesinde, elimizden geldiğince WordPress güvenliği için bilgiler paylaşmaya çalıştık. WordPress güvenlik yöntemleri ile ilgili sizlerin farklı tavsiyeleri var ise, yorum göndermenizi rica ederiz. Buna ek olarak, herhangi bir sorunuz var ise, ilgili yazılarımıza da yorum gönderebilirsiniz. Umarız, WordPress kullanıcıları için faydalı bir içerik olmuştur. Güvenle kalın, esen kalın...
Yorum bulunmamaktadır.