Bugün daha önce bir projemde kodladığım bir wordpress kodu yazacağız. Bu kodumuz sitemizin güvenliğini 4 seviye güçlendirebilecek.

Eğer web sitemizi 1 kişi kontrol edip giriş yapıyorsa bu yöntem tam sizin için biçilmiş bir kaftan diyebilirim. Yani çoklu üyelik sistemlerinde pek önermem fakat kurumsal wordpress siteleriniz ya da yönetimi sadece size ait siteleriniz için sorunsuz kullanabilirsiniz.

Aşama aşama kod blokları ve amaçlarını açıklayacağım.

1.İşlem ziyaretçilere wp-admin – wp-login sayfalarını kullanıma kapatmamız ve doğrudan web sayfamızın ana sayfasına yönlendirmemiz gerekiyor . Aşağıdaki kodumuzu functions.php içerisinde uygun bir yere yapıştırıyoruz.

// wp-login, wp admin ve GET sorgularını pasif hale getirir ve anasayfaya yönlendirir //
function privacy_login_page()
{
$sitehomepage = get_bloginfo('url'); // Anasayfa Linkimiz
$param = basename($_SERVER['REQUEST_URI']); // Gelen Sorgu Linki

if ($param == 'wp-login.php' || $param == 'wp-admin.php' || $_GET["redirect_to"] || $_GET["loggedout"]) {
wp_redirect($sitehomepage);
}

}
add_action('init', 'privacy_login_page');
// wp-login, wp admin ve GET sorgularını pasif hale getirir ve anasayfaya yönlendirir //


Bu kod sonrası benim sitem ve sizin sitenize wp-admin wp-login.php ve diğer tüm sorgulara erişim engellenmiş durumda olur ve bu linklere girdiğinizde sizi ana sayfa’ya yönlendirir.

2. işlem yapacağımız özel sayfa sayesinde giriş sayfamızın linkini sadece biz bileceğiz ve dilediğimiz an bu yolu ( linki ) değiştirebileceğiz.

Bunun için hemen page-privacy-login.php adında bir sayfa oluşturup hemen içerisine aşağıdaki kodların tamamını yazıyoruz. Sayfamızın adını dilediğimiz zaman değiştirebiliriz.Kodları kendi temanıza, style.css dosyanıza göre şekillendirebilirsiniz.

<?php
/**
* Template Name: İki Aşamalı Giriş Sayfası
*/
$date_check = date('d.m.Y'); // Şu an ki tarihi değişkene atıyoruz
get_header(); ?>
<?php get_sidebar(''); ?>
<h2><?php the_title(''); ?></h2>

<?php
if(!$_POST["onepass"]){?>
<h3>Bu sayfada iki aşamalı giriş sistemi bulunmaktadır</h3>
<p>Lütfen gecici anahtar kodunuzu aşağıdaki kutucuğa yazın ve devam edin.</p>

<form method="POST" name="onesecurity">
<input type="text" name="onepass" placeholder="Geçici Anahtar Kodunuz">
</br>
<input type="submit" name="onesecurity" value="Kontrol et, işleme devam et">
</form>
<?php } ?>

<?php
if($_POST["onepass"]){
if($date_check == $_POST["onepass"]){
?>
<h3>Geçici kod aşamasını tamamladınız.</h3>
<p>Şimdi wordpress bilgileriniz ile sisteme giriş yapabilirsiniz</p>

<form method="POST" action="<?php bloginfo('url') ?>/wp-login.php">
<input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" placeholder="Kullanıcı Adı">
</br>
<input type="password" name="pwd" id="pwd" placeholder="Parolanız">
</br>
<input type="hidden" name="redirect_to" value="<?php echo site_url( '/wp-admin', 'http' ); ?>" />
<?php do_action('login_form'); ?>
<input type="submit" value="Giriş Yap">
</form>
<?php } else { ?>
<h3>Geçici kodu eksik ya da hatalı yazdınız.</h3>
<p>Lütfen bir önceki sayfaya dönerek tekrar deneyiniz</p>
<?php }}?>


<?php get_footer(); ?>


PHP sayfamızı oluşturduktan sonra FTP’mize atıp yeni sayfa ekle deyip sağ kısımdaki kutucuklardan Sayfa Özellikleri ve şablondan ” İki Aşamalı Giriş Sayfası ” isimi olanı seçip yayınlıyoruz.Bu sayfanın içeriğinde neler var hemen maddeler halinde anlatayım.

  • Bugünün tarihini gün ay yıl olarak değişkene atadık.
  • Sitedeki iki aşamalı sorgu olayı burada başlıyor ve geçici anahtar kodumuz bugünün tarihi olacak. Giriş formundan önce bize bugünün tarihini soracak bugünün tarihini xx.xx.xxxx formatında girdiğimizde değişkendeki değer ile karşılaştırıp bize giriş formunu getiriyor.
  • Bu değişken yerine başka şeylerde koyabilirsiniz. Örneğin saat, dakika, saniye ya da belirleyeceğiniz bir kelime olabilir.
  • Benim oluşturduğum sayfada hemen buradan test yapabilirsiniz. Form gelecek fakat kodları sildim yani giriş yapmayı denemeyin çünkü pasif haldeler .. Fakat siz de sorunsuz çalışacaktır. Benim yazdığım bu sistemde geçici kodu günün tarihi olarak belirledim ( gün.ay.yıl ) tekrar bahsediyorum siz bu değişkene dilediğiniz herşeyi atayabilirsiniz.


Tüm işlemleri sırası ile doğru yaptıysanız artık sadece size özel bir giriş sayfanız oluşturuldu demektir.. Artık sitenize wordpress bilen kişiler giriş sorgusu gönderemez, deneme yapamazlar.

Özellikle kurumsal firmalara bu şekilde kodlama yaparsanız güvenliği 2 katına çıkarmış olursunuz. Hiç bilmediğiniz eklentileri ( popüler bile olsa ) kullanmamaya özen gösterin. 10 satır kod ile işlemlerimizi yaptık.

İşlem sırasında karşılaştığınız her türlü problemi yorum alanına yazın çözümü birlikte arayalım.. Bugün kü wordpress ipucununda sonuna geldik.

Faydalı gördüğünüz yazılarımı paylaşarak daha çok insana erişebilmemi sağlayabilirsiniz.

Anlatım: Gökhan Kara