Ruby on Rails

Sicurezza in Rails

Protezione CSRF, SQL injection, XSS, mass assignment, gestione dei secrets, HTTPS

22 domande da colloquio·
Senior
1

Quale meccanismo usa Rails per impostazione predefinita per proteggersi dagli attacchi CSRF?

Risposta

Rails genera un token CSRF univoco per sessione e lo include automaticamente nei form tramite un campo hidden. Questo token viene verificato lato server per ogni richiesta non-GET. L'helper form_with inserisce automaticamente questo token e protect_from_forgery è abilitato per impostazione predefinita in ApplicationController.

2

Come disabilitare la protezione CSRF per un'azione specifica in un controller API?

Risposta

Il metodo skip_before_action :verify_authenticity_token disabilita la verifica CSRF per azioni specifiche. È comune nelle API che usano l'autenticazione basata su token (JWT, API key) invece delle sessioni. Si consiglia di limitare questa eccezione alle sole azioni strettamente necessarie usando l'opzione only.

3

Quale vulnerabilità viene sfruttata in questo codice: User.where("name = '#{params[:name]}'")?

Risposta

L'interpolazione diretta di params in una query SQL consente la SQL injection. Un attaccante può inviare name="'; DROP TABLE users; --" per eseguire codice SQL arbitrario. Usa invece i placeholder di ActiveRecord: User.where(name: params[:name]) oppure User.where("name = ?", params[:name]).

4

Quale metodo di ActiveRecord protegge automaticamente dalla SQL injection?

5

Come protegge Rails automaticamente dagli attacchi XSS nelle view ERB?

+19 domande da colloquio

Padroneggia Ruby on Rails per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis