今天客户提出一个log里面显示了用户登录是显示了密码明文的问题,这些东西非常危险,恶意的人总是能想办法(这个办法很多,比如旁注等)拿到你的日志文件,而这个日志文件比起加密的数据库文件还要危险。
复制下面这行代码到ApplicaitonController Class中
filter_parameter_logging "password"
问题就解决了,log中显示为:
Processing HomeController#login (for 127.0.0.1 at 2007-12-14 15:20:53) [POST]
Session ID: a259eade57197f761fd6fbcbf76ddcdc
Parameters: {"commit"=>"登录", "action"=>"login", "username"=>"admin", "controller"=>"home", "password"=>"[FILTERED]"}
另外,如果想在开发环境下显示POST logging,但是在产品环境下完全不显示,可以改为:
filter_parameter_logging("password") if RAILS_ENV == "production"
这样就可以了。
如果想在产品环境完全禁止POST logging,则可以在production.rb中修改:
config.log_level = :warn
SO GOOD~!
复制下面这行代码到ApplicaitonController Class中
filter_parameter_logging "password"
问题就解决了,log中显示为:
Processing HomeController#login (for 127.0.0.1 at 2007-12-14 15:20:53) [POST]
Session ID: a259eade57197f761fd6fbcbf76ddcdc
Parameters: {"commit"=>"登录", "action"=>"login", "username"=>"admin", "controller"=>"home", "password"=>"[FILTERED]"}
另外,如果想在开发环境下显示POST logging,但是在产品环境下完全不显示,可以改为:
filter_parameter_logging("password") if RAILS_ENV == "production"
这样就可以了。
如果想在产品环境完全禁止POST logging,则可以在production.rb中修改:
config.log_level = :warn
SO GOOD~!
本文解决了一个关于应用程序日志中出现用户密码明文显示的问题。通过在ApplicationController中使用filter_parameter_logging方法,可以有效地隐藏敏感信息,如用户密码,从而增强系统的安全性。此外,还提供了针对不同运行环境(如开发环境和生产环境)的日志配置建议。
1244

被折叠的 条评论
为什么被折叠?



