Senha no arquivo de log

Relembrando o post de Carlos Brando em seu blog, vou aproveitar para incrementar um pouco mais ;)

Você não gostaria de encontrar isso no seu arquivo de log:

Processing AcessoController\#login (for 10.0.0.1 at 2007-11-13 18:01:05) [POST]
Session ID: 65f5dff4cb6382df7ff867058577577b
Parameters: {"commit"=>"Submit", "action"=>"login", "controller"=>"access", "login"=>"user.name", "password"=>"SENHA_DO_USUARIO"}
Redirected to http://www.mydomain.com/
Completed in 0.01000 (100 reqs/sec) | DB: 0.00000 (0%) | 302 Found [http://www.mydomain.com/login]

Olha que lindo, a senha é SENHA_DO_USUARIO, muito bem protegido, não?

Então, para solucionar esse problema, coloque o filtro no seu controller. (eu sugiro o ApplicationController)

1
2
3
4
5
class ApplicationController < ActionController::Base
  #...
  filter_parameter_logging :senha, :password
  #...
end

O que isso faz? Bom, qualquer campo que contenha os termos /senha|password/1

Tem mais na API.