if (! Defined (‘ABSPATH’)) exit; Nedir , Kullanımı ?

Bu ifade aslında wordpress alt yapısına sahip bütün web sitelerinde var olan bir yapıdır. Kendiniz tema yazarken de , hazır tema kullanırken de bu ibareye rastlayabilirsiniz. Bu durumun kullanılmadığı web sitelerinde açıklar meydana gelebilir. Yakın zaman önce yazmış olduğum bir script sayesinde fark ettiğim bir durumdu ve bu durumun bir zaaf yaratabileceğini düşündüm , bunu iyileştirmek için de birçok kaynaktan (stackoverflow , wordpress.org) bilgi edinerek eksikliği giderdim. if (! Defined (‘ABSPATH’)) exit;  ifadesi kodun yer aldığı sayfaya doğrudan erişimi engelleyen bir komut satırıdır. En belirgin örneğini de hazır scriptlerde , kendi yazmış olduğunuz bazı wordpress sitelerde görebilirsiniz. Sitenizi bölmelere ayırdığınızda örneğin header.php sayfasını direkt olarak url bölümüne yazan bir kullanıcı istemediğimiz şeyler ile karşılaşabilir. Ya da diğer bölümlere… Bu durumda if (! Defined (‘ABSPATH’)) exit;  ifadesini kullanarak “Exit if accessed directly” yani “Doğrudan erişilirse çıkın” emrini veriyoruz.

Burada exit kodu yerinde daha farklı komut satırları da çalışabilir ancak bu saldırganlar için açık olabileceğinden direkt olarak burada exit ifadesini kullanıp geriye kalan kodları bitiriyoruz. Burada wordpress sisteminde fark edeceğiniz üzere bir hata meydana gelir. Bu hata ister ekrana basılır isterseniz 404 sayfanıza yönlendirebilirsiniz. WordPress bir projede bir url’ye erişmek istediğinizde ilk olarak index.php sayfasına erişim sağlarsınız. Burada önemli nokta ABSPATH ifadesidir.Bu ifade sizin index.php dosyasına doğrudan erişim sağlamak isteyip istemediğinizi net olarak belirlemenizi sağlar.

Stackoverflow üzerinden edindiğim bilgilere göre .php dosyalarınıza doğrudan url yolu ile erişmek isteyen kullanıcılar(saldırganlar da olabilir) giriş çıkış işlemleri varsa eğer sizi zor durumda bırakabilirler. Bu da istenmeyen bir durum olduğu için bu kod bloğunu kullanmakta fayda var.

if (! Defined (‘ABSPATH’)) exit; Kullanım

  1. PHP dosyalarınızın herhangi birinin üstüne yerleşebilir (tema ve eklenti)
  2. Wp-config.php dosyanızın üst kısmına yerleştirilebilir.

Örnek Kullanım

<?php 
    if ( ! defined( 'ABSPATH' ) ) {
        exit; // Exit if accessed directly => Doğrudan erişilirse çıkın
    }
?>

İki farklı şekilde bu ifadeyi sitenize uyarlayabilir ve kullanabilirsiniz.

Makale ile ilgili daha fazla bilgi için aşağıdaki adresleri ziyaret edebilirsiniz ;

https://stackoverflow.com/questions/43212340/what-is-meant-by-if-defined-abspath
https://wordpress.org/support/topic/when-to-use-if-defined-abspath-exit/

AuthorHarun ALP

Bu adam , bilgi sahibi olduğu konularda makalelerini daha bilgilendirici hale getirip görseller ile süslüyor ve seo uyumlu makaleler ortaya çıkarıyor. Güncel webmaster konularını işlemekten keyif alıyor ve genelde her makale aslında bir sorunun çözümü niteliğinde.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir