domingo, 9 de noviembre de 2008

Ocultar parámetros del log de rails

Al igual que se suelen encriptar las contraseñas al guardarlas en las bases de datos de las aplicaciones con autentificación, también se deberían omitir este tipo de campos en el log de rails.

Cuando se despliega rails en un entorno en producción normalmente guarda el log de todas las peticiones en log/production.log, ahí se pueden ver todos los parámetros que se pasan a la aplicación, incluyendo contraseñas, números de tarjetas de crédito, etc.

Hay una forma de hacer que determinados parámetros no aparezcan, llamando a filter_parameter_logging en el controlador.

class AccountsController < ApplicationController
filter_parameter_logging :card_number

def index
@accounts = Account.find(:all)
end
end

En el log aparecerá algo así.

Parameters: {"card_number"=>"[FILTERED]"...

0 comentarios: