Tutorial Laravel 5.5 - CSRF Protection (Bagian 4)

Post a Comment

Cross-site request forgery (CSRF) adalah sebuah serangan yang dilakukan oleh pengguna yang tidak terautentikasi untuk mengeksekusi perintah. Laravel sudah menyediakan salah satu cara untuk mengatasi serangan CSRF ini dengan menggunakan CSRF Token. Nantinya token inilah yang digunakan untuk melakukan verifikasi apakah request yang diberikan memang berasal dari user yang bersangkutan.

Cara untuk membuat csrf token ini yang pertama adalah dengan menggunakan perintah csrf_field seperti pada contoh kode di bawah ini.


<form method="POST" action="/profile">
{{ csrf_field() }}
...
</form>

Perintah {{csrf_field()}} akan menghasilkan satu input type hidden dengan nama _token dan value yang sudah digenerate secara otomatis. Cara yang kedua adalah dengan menggunakan request header X-CSRF-TOKEN. Caranya adalah dengan menambahkan HTML meta tag ke dalam program.


<meta name="csrf-token" content="{{ csrf_token() }}">


Dengan menggunakan meta tag seperti kode di atas, anda bisa mengatur konfigurasi request AJAX program anda untuk secara otomatis mengirimkan header token ini ke semua request. Contoh di bawah ini adalah contoh kode menggunakan jQuery.


$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

Anda juga bisa melakukan pengecualian url yang tidak diperlukan proses verifikasi CSRF token dengan menambahkan url tersebut pada file VerifyCsrfToken.php. File ini terdapat dalam direktori app\Http\Middleware. Tambahkan url tersebut dalam variabel $except seperti contoh di bawah ini.


<?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 = [
'http://example.com/foo/bar',
'http://example.com/foo/*',
];
}

Jika anda merasa program anda tidak membutuhkan CSRF Protection, anda bisa mengedit file Kernel.php yang terdapat pada direktori app\Http\. Carilah variabel $middlewareGroups dan hapus atau remark baris berikut \App\Http\Middleware\VerifyCsrfToken::class,. Namun cara ini tidak saya anjurkan karena dapat mengurangi tingkat keamanan program yang anda buat.

Semoga artikel pembahasan CSRF Protection ini mudah dipahami. Pada artikel selanjutnya akan dibahas mengenai penggunaan Model pada framework Laravel 5.5 ini. Selamat mencoba.

Related Posts

Post a Comment