使用Devise过滤Rails password_confirmation

时间:2013-05-03 18:57:44

标签: ruby-on-rails security logging devise

多年来我读过一些教程,说你必须在config.filter_parameters中将config.filter_parameters += [:password, :password_confirmation]更新为application.rb,以便不将密码存储到日志文件中。我还看到了一些只列出config.filter_parameters += [:password]的教程。我一直使用Devise,我注意到只要我有config.filter_parameters += [:password](这是rails 3.2.13中的默认设置),我的密码和密码确认都会被过滤。

为什么要过滤password_confirmation?这是铁路的东西吗?设计?

显然,这是我想要的行为。只是好奇为什么它以这种方式工作。

1 个答案:

答案 0 :(得分:3)

这是一个东西:

http://api.rubyonrails.org/classes/ActionDispatch/Http/FilterParameters.html#method-i-parameter_filter

基本上,密钥只是通过正则表达式传递,如/ password /,如果匹配则将值转换为“[FILTERED]”]

所以匹配 password_confirmation 甚至 do_not_filter_this_password 的字段都会默认过滤。