Merhabalar,
Bu makale de wordpress alt yapısı kullanan sitelerinizin güvenliği için wp-login.php yani giriş sayfasında eklentisiz alabileceğiniz birkaç önlemden bahsedeceğim. Sözü çok fazla uzatmadan listemize başlayalım.
1- wp-login.php Dosyasının yolunu değiştirmek
Bunu sağlayan birçok eklenti mevcut fakat biz eklentisiz bir şekilde yapmaya çalışacağız.
İlk olarak site ana dizinine herhangi bir ftp programı veya dosya yöneticisi ile bağlanın. wp-content/themes/temaniz dizini altında herhangi bir isimde dosya oluşturun. Örneğin login.php adında bir dosya oluşturup içerisine şunları yapıştırın.
<?php /* Template Name: Giriş Sayfası */
Daha sonra wordpress admin panelinize giriş yaparak sol menüden sayfalar altındaki yeni ekle sekmesine tıklayın. Ekranın sağ kısmında kalan bloklarda sayfa özellikleri altında Şablon olarak Giriş Sayfası seçeneğini seçip başlık ve url alanlarını düzenleyin.
Artık siteniz.com/giris şeklinde girdiğiniz zaman bu sayfa çalışacaktır. Şimdi bu sayfanın içerisine wp-login.php sayfasındaki kodları olduğu gibi kopyalayıp yapıştırın ve 12. satırda bulunan, ( sürüme göre değişmiş de olabilir )
require( dirname(__FILE__) . '/wp-load.php' );
kodunu şu şekilde değiştirin.
require( dirname(dirname(dirname(__DIR__))) . '/wp-load.php' );
Artık siteniz.com/giris sayfasını giriş sayfanız olarak kullanabilirsiniz. Şimdi ise wp-login.php dosyasını devre dışı bırakalım. Bu sayfayı tümüyle kaldırmak yanlış olur, bu sefer şifre değiştirme veya çıkış sayfaları askıda kalır. Bunlara engel olmak için wp-login.php dosyasına filtre ekleyelim.
wp-login.php dosyasını açın ve yine 12. satırdaki require kodunun altına şunları ekleyin.
require( dirname(__FILE__) . '/wp-load.php' ); if ( is_user_logged_in() ) { $kontrol_giris = "1"; } else { $kontrol_giris = "0"; } if($kontrol_giris=='0') { header("Location:/"); exit(); }
Bu kodlar sayesinde giriş yapmamış kullanıcılar wp-login.php dosyasını göremeyecekler. Giriş yapmak içince sizin belirlediğiniz adrese girmek zorunda kalacaklar.
2- Giriş Sayfasını Kontrol Etmek
Burada ise giriş sayfanıza özel get veri filtreleri ekleyerek sadece verilerin değerlerini bilen kişilerin sayfaya girmelerine izin vereceğiz. Bunun için wp-login.php dosyasına veya giriş dosyanız her ne ise o dosyayı açıp sayfanın en başına şu kodları ekleyin.
if( @$_GET['g']!='giris-sifrem') { header("Location:/"); exit(); }
Artık giriş yapmak isteyen kişi sayfaya get metodu ile g=giris-sifrem verisini göndermek zorunda. Yani siteniz.com/wp-login.php adresine giren kişi ana sayfaya yönlendirilirken siteniz.com/wp-login.php?g=giris-sifrem adresine giren kişiler giriş ekranını görebilecekler.
3- Giriş Ekranına Parola Koruması Ekleme
Bu biraz daha değişik bir yöntem olarak kullanılabilir. Giriş sayfasını açan kişiden parola istenecek ve eğer parola doğru ise giriş sayfası açılacak. Yapımında ben sweet alert 2 kutularını kullanmayı tercih ettim, sizde kullanabilirsiniz.
Her zamanki gibi giriş dosyamızın içerisine sayfanın en üstüne aşağıdaki kodları ekleyiniz.
session_start(); if( @$_POST['sifre']) { $dogru_sifre = "123456"; $gelen_sifre = $_POST['sifre']; if($gelen_sifre==$dogru_sifre){ $_SESSION['giris_kontrol'] = "1"; echo "1"; }else { echo "0"; } exit(); } if( @$_SESSION['giris_kontrol']!="1") { ?> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.6/sweetalert2.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.6/sweetalert2.min.css"> <script> $(document).ready(function() { swal({ title: 'Şifreyi Giriniz', input: 'password', showCancelButton: false, confirmButtonText: 'Gönder', showLoaderOnConfirm: true, preConfirm: function (sifre) { return new Promise(function (resolve, reject) { setTimeout(function() { if (sifre === '') { reject('Lütfen Boş Bırakmayınız') } else { resolve() } }, 2000) }) }, allowOutsideClick: false }).then(function (sifre) { var data = 'sifre='+sifre; var kontrol = $.ajax({ type: 'POST', url: "", data: data, dataType: 'html', context: document.body, global: false, async:false, success: function(data) { return data; } }).responseText; if(kontrol=='1') { swal( 'Teşekkürler', '2 sn içerisinde sayfa yenilenecek!', 'success' ) } else { swal( 'Başarısız', 'Şifreyi Yanlış Girdin', 'error' )} setTimeout(function(){ window.location.reload(1); }, 2000); }) }) </script> <?php exit(); }
$dogru_sifre değişkenine istediğiniz şifreyi giriniz, kullanıcı eğer bu şifreyi yazarsa session oturumu başlatılıyor ve giriş sayfası görüntülenebilir hale geliyor.
Bu makale de size wordpress giriş sayfanızı eklentisiz bir şekilde koruyabileceğiniz 3 mantıktan bahsettim. Bu mantıkları anlatırken en sade haliyle yazdım, siz keyfinize göre özelleştirebilir ve geliştirebilirsiniz. Ayrıca takıldığınız yerleri yorum olarak belirtebilir ve makaleme aşağıdan oy verebilirsiniz. Teşekkür ederim, Sağlıcakla kalın.