PHP Dersleri

PHP ile GET ve POST Gibi İstekleri Engelleme

PHP Programlama dil ile GET yada POST gibi istekleri engelleyebilirsiniz. Bu işlemi gerçekleştirmek için iki farklı bilgiden yararlanmak gerekecektir. İlk olarak kullanıcıdan gelen metod bilgisinin ne olduğunu bulmalıyız. Sonrasında ise bu değerin GET yada POST işlemleri mi diye karşılaştırma işlemi olacaktır. Bu bilgiler doğrultusunda GET yada POST isteklerini engelleyebiliyor olacaksınız.

POST yada GET gönderimlerini engellemek güvenlik işlemleri için kullanılmaktadır. Yada sadece belirlenen URL yapısından verilerin alınmasını sağlamak içinde kullanılabilinir.

Form üzerinden gelen bilgileri alabilmek için $_SERVER global değişkeninden REQUEST_METHOD kullanılmaktadır. Bu ifade ile birlikte kullanıcıdan gelen isteğin POST mu yada GET mi için olduğunu tesbit edebilirsiniz. Gelen method değerini tesbit ettikten sonra büyük küçük harf değerini göz ardı ederek karşılaştırma yapmak için strcasecmp() fonksiyonunu kullanmak gerekecektir. Kontrol sonrasında gelen değere göre istediğiniz gibi sonuçlar gerçekleştirebilirsiniz.

<form action="" method="POST">
   <button>Yolla</button>
</form>

İlk olarak bu işlemleri gerçekleştirmek için minik bir form alanı oluşturdum. Bu formu kullanarak gelen verileri kontrol edeceğiz.

<?php
## Gönderim Metodunu alıyoruz
$metodBilgisiniAL = $_SERVER['REQUEST_METHOD'];
## Gönderim değerini kontrol ediyoruz. TRUE ise "0" olacaktır.
if(strcasecmp($metodBilgisiniAL, 'POST') == 0){
   echo "POST Metodunu kullanamazsınız!";
   die;
}
?>

Yukarıda yer alan PHP kodlarında, ilk olarak gönderim metodu tesbit edilmektedir. Sonrasında kontrol işlemi yapılarak hata mesajı verilmektedir. Bu işlemin aynısını GET metodu ile gerçekleştirebilirsiniz.

Bildiğiniz gibi REQUEST_METHOD değeri GET, POST, HEAD yada PUT gibi değerler almaktadır. Gelen değerlerden sadece belirli metodlara izin verilmesini de sağlayabilirsiniz. Bunun için in_array() fonksiyonunu kullanabilirsiniz.

<?php
## İzin verilen Metodlar
$izinVerilenMetodlar = array('POST', 'HEAD');
## Gönderim Metodunu alıyoruz
$metodBilgisiniAL    = $_SERVER['REQUEST_METHOD'];
## Gönderim değerini kontrol ediyoruz. TRUE ise "0" olacaktır.
if( !in_array($metodBilgisiniAL, $izinVerilenMetodlar) ){
   echo "Bu Metod değeri erişime kapalıdır!";
   die;
}
?>

Yukarıdaki örnekte de, gönderim metodlarından POST ve HEAD işlemlerine izin verilmektedir. Diğer değerler in_array() fonksiyonu ile tespit edilip engellenecektir.

İzin verilmeyen metodlara erişimin direkt olarak engellenmesi ve kullanıcılara bunun yasak olduğunu anlatan bir sayfaya yönlendirmesinin yapılası için de, kontrol yapısının içerisine aşağıdaki header() tanımlamasını yaparak sağlayabilirsiniz.

header($_SERVER["SERVER_PROTOCOL"]." 405 Method Not Allowed", true, 405);

Yukarıda yer alan header() fonksiyonunu kullanarak istenmeyen metodla gelen istekleri 405 sayfasına yönlendirebilirsiniz. Böylelikle kaynak kod görütülemesi engellenmiş olursunuz. Böylelikle zararlı gönderilerin önüne geçmiş olursunuz.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir