Ruby on Rails

Segurança no Rails

Proteção CSRF, injeção SQL, XSS, mass assignment, gerenciamento de secrets, HTTPS

22 perguntas de entrevista·
Senior
1

Qual mecanismo o Rails usa por padrão para proteger contra ataques CSRF?

Resposta

O Rails gera um token CSRF único por sessão e o inclui automaticamente nos formulários por meio de um campo hidden. Esse token é verificado no lado do servidor para cada requisição não-GET. O helper form_with insere esse token automaticamente, e protect_from_forgery vem ativado por padrão em ApplicationController.

2

Como desativar a proteção CSRF para uma ação específica em um controller de API?

Resposta

O método skip_before_action :verify_authenticity_token desativa a verificação CSRF para ações específicas. Isso é comum em APIs que usam autenticação baseada em token (JWT, API key) em vez de sessões. Recomenda-se limitar essa exceção às ações estritamente necessárias usando a opção only.

3

Qual vulnerabilidade é explorada neste código: User.where("name = '#{params[:name]}'")?

Resposta

A interpolação direta de params em uma consulta SQL permite a injeção SQL. Um atacante pode enviar name="'; DROP TABLE users; --" para executar código SQL arbitrário. Use os placeholders do ActiveRecord em vez disso: User.where(name: params[:name]) ou User.where("name = ?", params[:name]).

4

Qual método do ActiveRecord protege automaticamente contra a injeção SQL?

5

Como o Rails protege automaticamente contra ataques XSS nas views ERB?

+19 perguntas de entrevista

Domine Ruby on Rails para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis