Ruby on Rails

Rails-Sicherheit

CSRF-Schutz, SQL-Injection, XSS, Mass Assignment, Secrets-Verwaltung, HTTPS

22 Interview-Fragen·
Senior
1

Welchen Mechanismus verwendet Rails standardmäßig zum Schutz vor CSRF-Angriffen?

Antwort

Rails generiert pro Session ein eindeutiges CSRF-Token und bindet es über ein Hidden-Feld automatisch in Formulare ein. Dieses Token wird serverseitig für jede Nicht-GET-Anfrage überprüft. Der form_with-Helper fügt dieses Token automatisch ein, und protect_from_forgery ist im ApplicationController standardmäßig aktiviert.

2

Wie deaktiviert man den CSRF-Schutz für eine bestimmte Action in einem API-Controller?

Antwort

Die Methode skip_before_action :verify_authenticity_token deaktiviert die CSRF-Prüfung für bestimmte Actions. Das ist üblich bei APIs, die token-basierte Authentifizierung (JWT, API key) statt Sessions verwenden. Es wird empfohlen, diese Ausnahme mit der Option only auf die unbedingt notwendigen Actions zu beschränken.

3

Welche Schwachstelle wird in diesem Code ausgenutzt: User.where("name = '#{params[:name]}'")?

Antwort

Die direkte Interpolation von params in einer SQL-Abfrage ermöglicht SQL-Injection. Ein Angreifer kann name="'; DROP TABLE users; --" senden, um beliebigen SQL-Code auszuführen. Verwenden Sie stattdessen ActiveRecord-Platzhalter: User.where(name: params[:name]) oder User.where("name = ?", params[:name]).

4

Welche ActiveRecord-Methode schützt automatisch vor SQL-Injection?

5

Wie schützt Rails in ERB-Views automatisch vor XSS-Angriffen?

+19 Interview-Fragen

Meistere Ruby on Rails für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten