Todo mundo pode ver minha senha nos arquivos de log do Rails…

16 de agosto de 2007  |  Ruby on Rails  | 

Um recurso muito útil no Rails são os arquivos de log. Por meio deles nós podemos acompanhar exatamente o que está acontecendo com nosso software, vendo inclusive os comandos SQL enviados para o banco de dados.

Mas este recurso tem um sério problema de segurança. Uma simples página de login ou cadastro de usuários, pode fazer com que o Rails grave a senha do usuário nos arquivos de log. Quando enviamos dados via post (usado nestes casos) o Rails grava todos os parametros enviados no arquivo de log, inclusive sua senha. Faça o teste e comprove.

Para evitar este tipo de problema, você pode utilizar um filtro no seu arquivo de controller:

[source:ruby]
class WelcomeController < ApplicationController
filter_parameter_logging "password"
end
[/source]

Onde “password” é o nome do campo que você está usando para armazenar sua senha.

Agora faça o teste novamente. Ao invés de o Rails registrar a senha do usuário no log, ele trocará por [FILTERED].


5 Comentários


  1. Só para confirmar, isto não acontece com o enironment production certo? só com testing e development se não estou enganado … (claro que posso estar enganado :D )

  2. Carlos, muito boa essa dica, vou testar aqui!
    Abraços!

  3. Carlos, esta é uma excelente dica. Vou testar o mais rápido possivel.
    Abraços

  4. É, bem oportuna a dica.
    Vou fazer o teste quando eu chegar em casa para ver o que aparece nos logs quando acesso a administração do meu blog! :D

    []‘s

  5. Rodrigo, antes de escrever o post eu fiz um teste aqui e ele mostra em produção sim.

Trackbacks

  1. Senha no arquivo de log « Tino Gomes
  2. Anônimo
  3. Anônimo

Deixe um comentário