CSRF Koruması

Titan Framework, CSRF (Cross Site Request Forgering) saldırılarından korunmak için token yöntemini kullanır. Bunun için önce sistem tarafından bir token değeri oluşturulur ve session'a atılır. Aynı token değeri HTML form içerisindeki hidden tipinde bir elemana atanır. Formun post edildiği sayfada, formdan gelen token ile session'da bulunan token değerleri kontrol edilir. Eşitlik durumunda true, aksi durumda false döndürür.

  1. Token Oluşturma » csrf_token()
  2. Token Doğrulama » csrf_check()

Token Oluşturma

HTML form içerisinde token oluşturmak için csrf_token() fonksiyonu kullanılır.

- Form Kütüphanesi ile kullanım örneği;

{!! Form::open(['method' => 'post']) !!}
{!! Form::text('adsoyad') !!}
{!! Form::email('eposta') !!}
{!! Form::hidden('_token', ['value' => csrf_token()]) !!}
{!! Form::submit('submit', 'Gönder') !!}
{!! Form::close() !!}

- HTML kullanım örneği;

<form method="post">
	<input type="text" name="adsoyad">
	<input type="text" name="eposta">
	<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
	<input type="submit" value="Gönder">
</form>

Token Doğrulama

Formdan gelen verileri işleme sokmadan önce, token değerinin session'daki token ile aynı olup olmadığı kontrol edilmelidir. Bunun için csrf_check() fonksiyonu kullanılır. Formdan gelen token değeri, fonksiyona parametre olarak verilir.

if (csrf_check(Request::post('_token'))) {
	echo 'Token doğru';
} else {
	echo 'Token doğru değil';
}