APA ITU CSRF LARAVEL

 Apa itu CSRF? Pengertian CSRF dan Implemntasi di Form input Website -  PemburuKode

Cross-site request forgeries (CSRF) adalah jenis serangan yang dilakukan oleh penyerang untuk mengirim permintaan ke suatu sistem dengan bantuan pengguna resmi yang dipercaya oleh sistem.Atau juga CSRF sendiri adalah cross site request forgery, apa maksudnya nih?? Maksudnya adalah csrf ini merupakan salah satu lubang di web app yang bekerja dengan cara mengeksploitasi suatu aksi dan eksploitasi ini memanfaatkan otentikasi milik salah satu user.

Laravel memberikan perlindungan dengan serangan CSRF dengan menghasilkan token CSRF. Token CSRF ini dihasilkan secara otomatis untuk setiap pengguna. Token ini tidak lain adalah string acak yang dikelola oleh aplikasi Laravel untuk memverifikasi permintaan pengguna.

 

Cara Memakai

Laravel CSRF in Forms

<form method="POST">
@csrf // Generate hidden input field
.....
.....
</form>
<form method="POST">

// Generate hidden input field
{{ csrf_field() }}
.....
.....
</form>
<form method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
.....
.....
</form>

Handling Laravel CSRF when Using Axios

let token = document.head.querySelector('meta[name="csrf-token"]');

if (token) {

window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;

} else {

console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');

}

Laravel CSRF Token Ajax Calls

$.ajax({

type: "POST",

data: {"_token": "{{ csrf_token() }}","id": id},

url: some_url,

success: function(msg){

// response

}

});

Ajax Headers

$.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } });

Laravel CSRF Custom Header Posts

<script> var _token = '<?php echo csrf_token(); ?>'; </script>

CSRF Filter

Route::filter('csrf', function()

{

if (Request::ajax())

{

if (Session::token() !== Request::header('csrftoken'))

{

// Change this to return something your JavaScript can read...

throw new Illuminate\Session\TokenMismatchException;

}

}

elseif (Session::token() !== Input::get('_token'))

{

throw new Illuminate\Session\TokenMismatchException;

}

});

Excluding URIs From CSRF Protection

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware

{

/**

* The URIs that should be excluded from CSRF verification.

*

* @var array

*/

protected $except = [

'stripe/*',

'http://example.com/foo/bar',

'http://example.com/foo/*',

];

}

 

Komentar

Postingan populer dari blog ini

KELEBIHAN DAN KEKURANGAN BOOTSTRAP

DATABASE