Ruby on Rails

Keamanan Rails

Proteksi CSRF, SQL injection, XSS, mass assignment, manajemen secrets, HTTPS

22 pertanyaan wawancara·
Senior
1

Mekanisme apa yang digunakan Rails secara default untuk melindungi dari serangan CSRF?

Jawaban

Rails menghasilkan token CSRF unik per sesi dan menyertakannya secara otomatis ke dalam form melalui field hidden. Token ini diverifikasi di sisi server untuk setiap request non-GET. Helper form_with menyisipkan token ini secara otomatis, dan protect_from_forgery aktif secara default di ApplicationController.

2

Bagaimana cara menonaktifkan proteksi CSRF untuk action tertentu di controller API?

Jawaban

Metode skip_before_action :verify_authenticity_token menonaktifkan verifikasi CSRF untuk action tertentu. Ini umum pada API yang menggunakan autentikasi berbasis token (JWT, API key) alih-alih session. Disarankan untuk membatasi pengecualian ini hanya pada action yang benar-benar diperlukan dengan opsi only.

3

Kerentanan apa yang dieksploitasi dalam kode ini: User.where("name = '#{params[:name]}'")?

Jawaban

Interpolasi langsung params dalam query SQL memungkinkan SQL injection. Penyerang dapat mengirim name="'; DROP TABLE users; --" untuk mengeksekusi kode SQL sembarang. Gunakan placeholder ActiveRecord sebagai gantinya: User.where(name: params[:name]) atau User.where("name = ?", params[:name]).

4

Metode ActiveRecord mana yang secara otomatis melindungi dari SQL injection?

5

Bagaimana Rails secara otomatis melindungi dari serangan XSS di view ERB?

+19 pertanyaan wawancara

Kuasai Ruby on Rails untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis