Ruby on Rails

Seguridad en Rails

Protección CSRF, inyección SQL, XSS, mass assignment, gestión de secrets, HTTPS

22 preguntas de entrevista·
Senior
1

¿Qué mecanismo usa Rails por defecto para protegerse contra los ataques CSRF?

Respuesta

Rails genera un token CSRF único por sesión y lo incluye automáticamente en los formularios mediante un campo hidden. Este token se verifica del lado del servidor para cada petición que no sea GET. El helper form_with inserta automáticamente este token, y protect_from_forgery está activado por defecto en ApplicationController.

2

¿Cómo desactivar la protección CSRF para una acción específica en un controller de API?

Respuesta

El método skip_before_action :verify_authenticity_token desactiva la verificación CSRF para acciones específicas. Esto es común en APIs que usan autenticación basada en token (JWT, API key) en lugar de sesiones. Se recomienda limitar esta excepción a las acciones estrictamente necesarias usando la opción only.

3

¿Qué vulnerabilidad se explota en este código: User.where("name = '#{params[:name]}'")?

Respuesta

La interpolación directa de params en una consulta SQL permite la inyección SQL. Un atacante puede enviar name="'; DROP TABLE users; --" para ejecutar código SQL arbitrario. Hay que usar los placeholders de ActiveRecord en su lugar: User.where(name: params[:name]) o User.where("name = ?", params[:name]).

4

¿Qué método de ActiveRecord protege automáticamente contra la inyección SQL?

5

¿Cómo protege Rails automáticamente contra los ataques XSS en las vistas ERB?

+19 preguntas de entrevista

Domina Ruby on Rails para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis