Laravel saat ini merupakan salah satu framework pemrograman terfavorit untuk PHP yang digunakan untuk membuat suatu aplikasi web. Namun saat ini cukup banyak serangan yang dapat merusak aplikasi web tersebut. Pada artikel kali ini kami akan membahas beberapa jenis serangan dan bagaimana dapat mencegah atau mengatasi hal tersebut pada aplikasi laravel.

1. Peningkatan Keamanan Untuk Aplikasi Laravel – Cegah SQL Injection

SQL injection terjadi ketika ada input pengguna yang tidak difilter masuk ke dalam query SQL. Tujuannya untuk mengakses,memodifikasi atau bahkan merusak data dan terkadang mengganggu fungsi normal dari aplikasi. Input pengguna ini bisa berasal dari cookie, variabel server, dan yang paling sering, melalui nilai input GET atau POST. Salah satu yang rawan yaitu menggunakan DB::raw ketika kita ingin membuat query yang lebih kompleks misal :

Route::get(‘getname’, function(){
$name = “‘admin’ OR 1=1”;
return DB::select(
DB::raw(“SELECT * FROM users WHERE name = $name”));});

Untuk melindungi query ini dari SQL injection, gunakan parameter dengan tanda tanya pada query kemudian melewati value dalam array sebagai argument kedua pada metode raw.

Route::get(‘getname’, function(){
$name = “‘admin’ OR 1=1”;
return DB::select(
DB::raw(“SELECT * FROM users WHERE name = ?”,[$name]));
});

2. Peningkatan Keamanan Untuk Aplikasi Laravel – Menggunakan HTTPS

Setiap bit informasi yang dipertukarkan, termasuk password, dikirim dalam teks yang rentan terhadap penyerang yang dapat melakukan intercept informasi pribadi. Satu-satunya cara kita bisa mencegah hal ini adalah dengan menggunakan HTTPS. Jika anda sudah memiliki sertifikat SSL yang terpasang di web server, Laravel hadir dengan sejumlah helper untuk beralih dari http:// ke https:// dan membatasi akses ke rute tertentu. Misal, menentukan filter https yang akan mengarahkan pengunjung ke rute aman seperti yang ditunjukan pada snippet kode dibawah:

Route::filter('https', function() {if ( ! Request::secure())return Redirect::secure(URI::current());});

3.  Tips Keamanan Untuk Aplikasi Laravel – Cross-site Request Forgery

Serangan Cross-site Request Forgery (CSRF) dilakukan dengan cara menargetkan URL untuk mengirim korbannya masuk ke halaman web yang dia kontrol, penyerang bisa dengan mudah membuat korban mengirimkan formulir ke target domain. Jika korban sudah masuk ke target domain, aplikasi tidak memiliki cara untuk memverifikasi keaslian request tersebut.

Cara yang efektif untuk menanggulanginya adalah dengan mengeluarkan token form ditampilkan dan kemudian mengecek token tersebut ketika form di-submit. Form::open dan Form::model keduanya secara otomatis memasukan elemen input hidden_token, dan pada middleware diterapkan untuk memeriksa token yang dimasukan ketika incoming request, apakah sama dengan nilai yang diharapkan.