5 Tips Keamanan Untuk Aplikasi Laravel

5 Tips Keamanan Untuk Aplikasi Laravel

Pada artikel kali ini, saya akan membahas beberapa faktor serangan umum pada aplikasi web dan mengetahui bagaimana Laravel dapat melindungi aplikasi kamu dari serangan ini. Karena frame tidak bisa melindungi aplikasi kamu dari segala hal. Berikut ini adalah 5 tips keamanan untuk aplikasi Laravel.

1. Tips Keamanan Untuk Aplikasi Laravel – Menghindari SQL Injection

Celah SQL injection ada saat aplikasi memasukan arbitrary dan input pengguna yang tidak difilter ke dalam query SQL. Input pengguna ini bisa berasal dari cookie, variabel server, dan yang paling sering, melalui nilai input GET atau POST. Serangan ini dilakukan untuk mengakses atau memodifikasi data yang biasanya tidak tersedia dan terkadang mengganggu fungsi normal dari aplikasi.

Secara default, Laravel akan melindungi dari jenis serangan ini, dimana query builder dan Eloquent menggunakan class PHP Data Objecct (PDO) dibelakang layar. PDO menggunakan statement siap pakai, yang memungkinkan kamu melewati parameter dengan aman tanpa harus melepaskan dan membersihkannya.

Pada beberapa kasus, kamu ingin menulis query database tertentu yang lebih kompleks di SQL. Hal ini bisa saja menggunakan metode DB::raw. Ketika menggunakan metode ini kamu harus ekstra hati-hati untuk tidak membuat celah pada query seperti ini contohnya:

Route::get('sql-injection-vulnerable', function() {
$name = "'Bobby' OR 1=1";
return DB::select(
DB::raw("SELECT * FROM cats WHERE name = $name"));
});

Untuk melindungi query ini dari SQL injection, kamu harus me-rewrite dengan mengganti parameter dengan tanda tanya pada query dan kemudian melewati value dalam array sebagai argument kedua ke metode raw.

Route::get('sql-injection-not-vulnerable', function() {
$name = "'Bobby' OR 1=1";
return DB::select(
DB::raw("SELECT * FROM cats WHERE name = ?", [$name]));
});

2. Tips Keamanan Untuk Aplikasi Laravel – Menggunakan HTTPS Ketika Bertukar Data Sensitif

Jika kamu serving aplikasi kamu melalui HTTP, kamu harus ingat bahwa setiap bit informasi yang dipertukarkan, termasuk password, dikirim dalam teks. Penyerang pada jaringan yang sama dapat melakukan intercept informasi pribadi, seperti varibel session, dan data log target. Satu-satunya cara kita bisa mencegah hal ini adalah dengan menggunakan HTTPS. Jika kamu sudah memiliki sertifikat SSL yang terpasang di web server, Laravel hadir dengan sejumlah helper untuk beralih dari // ke // dan membatasi akses ke rute tertentu. Kamu dapat, misalnya, 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 – Menggunakan Mass Assignment Dengan Hati-Hati

Merupakan fitur yang memungkinkan kita membuat model berdasarkan input tanpa harus menugaskan setiap value secara individu. Namun fitur ini harus digunakan dengan hati-hati. Penyerang dapat mengubah form pada sisi klien dan menambahkan input baru kedalamnya.

Berkat array $fillable, yang mendefinisikan white list dari field yang dapat diisi melalui mass assignment, metode pemanggilan ini akan membuang mass assignment exception.

Hal ini juga memungkinkan untuk melakukan hal sebaliknya dan menentukan black list dengan property $guarded. Namun, opsi ini bisa sangat berbahaya karena kamu mungkin lupa memperbaharuinya saat menambahkan field baru ke model.

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

Serangan Cross-site Request Forgery (CSRF) dilakukan dengan menargetkan URL yang memiliki efek samping (yaitu, yang dapat melakukan tindakan dan tidak hanya menampilkan informasi). Penyerang bisa mengirim korbannya untuk masuk ke halaman web yang dia kontrol, penyerang bisa dengan mudah membuat korban mengirimkan formulit 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 kapanpun form ditampilkan dan kemudian mengecek token tersebut ketika form di-submit. Form::open dan Form::model keduanya secara otomatis memasukan elemen input hidde_token, dan pada middleware diterapkan untuk mengecek token yang dimasukan pada incoming request untuk melihat apakah sama dengan nilai yang diharapkan.

5. Tips Keamanan Untuk Aplikasi Laravel – Mencegah Cross-Site Sripting (XSS)

Serangan Cross-site scripting (XSS) terjadi ketikan penyerang dapat menempatkan kode JavaScript di sisi klien pada halaman yang dilihat oleh pengguna lain. Penyerang dapat memasukan script yang dapat mencuri value dari session atau cookie. Untuk menghindari serangan semacam ini, kamu tidak boleh mempercayai data yang disubmit oleh pengguna atau menghindari karakter berbahay apapun.

Kamu harus memilih menggunakan syntax double-brace ({{$value}}) di template Blade, dan hanya menggunakan syntax {!! $value !!}, dimana kamu yakin data aman untuk ditampilkan dalam format aslinya.

 

Jakartawebhosting.com menyediakan layanan Web Hosting, dengan kecepatan dan stabilitas pusat data dan server yang baik, up time server 99,9%, team support yang siap membantu 24 jam dan biaya langganan dengan yang menarik.

You may also like...