Lompat ke konten Lompat ke sidebar Lompat ke footer

Laravel Security 1: CSRF Protection Pada Framework Laravel

Apa itu Cross-site request forgeries(CSRF)?

Dikutip dari wikipedia, CSRF adalah : 
Cross-site request forgery, also known as one-click attack or session riding and abbreviated as CSRF (sometimes pronounced sea-surf[1]) or XSRF, is a type of malicious exploit of a website where unauthorized commands are submitted from a user that the web application trusts.

Source : https://en.wikipedia.org/wiki/Cross-site_request_forgery 

Simpelnya, CSRF adalah sebuah vulnrability pada website yang dilakukan attacker dengan cara mengirim request pada web aplikasi target sehingga request tersebut dianggap sah oleh aplikasi target. Padahal request tersebut dilakukan oleh halaman lain yang bukan dari aplikasi tersebut. Contohnya, kalian punya aplikasi yang melakukan delete post ketika endpoint /post/delete/ dengan request method post dan pada body request dikirimkan postId=1. Maka aplikasi akan mencari data dengan post id 1 lalu menghapusnya. 

Nah metode seperti ini tidak aman karena aplikasi tidak dapat mengetahui request tersebut berasal darimana, penyerang bisa saja melakukan submit form dari halaman milik penyerang untuk menghapus post pada website kita.

Untuk menangani vulnrability ini, Laravel Framework by default memiliki fitur CSRF Protection dimana Laravel secara otomatis meng-generate CSRF "token" untuk setiap user yang aktif. Jadi, untuk setiap pengiriman form harus menyertakan CSRF token tersebut di dalam input type hidden untuk form dengan request method POST, PUT, PATCH, atau DELETE. Sehingga aplikasi dapat mengetahui request tersebut berasal dari aplikasi atau dilakukan oleh penyerang. Apabila request tidak menyertakan CSRF token yang sudah di generate aplikasi maka request tersebut dinyatakan tidak sah dan akan langsung ditolak oleh aplikasi.

Untuk penggunaannya juga cukup mudah, kalian hanya tinggal meletakkan @csrf didalam form blade Laravel lalu akan secara otomatis di generate menjadi input dengan type hidden yang berisi random CSRF token yang di generate secara otomatis oleh Framework Laravel. Terimakasih sudah membaca, semoga bermanfaat.

Posting Komentar untuk "Laravel Security 1: CSRF Protection Pada Framework Laravel"