Carlos Brando

Nome do Jogo

Todo mundo pode ver minha senha nos arquivos de log do 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].

Comments