Ruby on Rails

Sécurité Rails

CSRF protection, SQL injection, XSS, mass assignment, secrets management, HTTPS

22 questions d'entretien·
Senior
1

Quel mécanisme Rails utilise-t-il par défaut pour protéger contre les attaques CSRF ?

Réponse

Rails génère un token CSRF unique par session et l'inclut automatiquement dans les formulaires via un champ hidden. Ce token est vérifié côté serveur pour chaque requête non-GET. Le helper form_with insère automatiquement ce token, et protect_from_forgery est activé par défaut dans ApplicationController.

2

Comment désactiver la protection CSRF pour une action spécifique d'un controller API ?

Réponse

La méthode skip_before_action :verify_authenticity_token permet de désactiver la vérification CSRF pour des actions spécifiques. C'est courant pour les APIs qui utilisent une authentification par token (JWT, API key) plutôt que des sessions. Il est recommandé de limiter cette exception aux actions strictement nécessaires avec l'option only.

3

Quelle est la vulnérabilité exploitée dans ce code : User.where("name = '#{params[:name]}'")?

Réponse

L'interpolation directe de params dans une requête SQL permet l'injection SQL. Un attaquant peut envoyer name="'; DROP TABLE users; --" pour exécuter du code SQL arbitraire. Il faut utiliser les placeholders ActiveRecord : User.where(name: params[:name]) ou User.where("name = ?", params[:name]).

4

Quelle méthode ActiveRecord protège automatiquement contre l'injection SQL ?

5

Comment Rails protège-t-il automatiquement contre les attaques XSS dans les vues ERB ?

+19 questions d'entretien

Maîtrise Ruby on Rails pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement