我正在使用fastlane和sh命令解密某些凭据,但似乎ruby将输出打印在日志中。如何从日志中隐藏敏感信息?
cmd_decrypt = "openssl enc -aes-256-cbc -d -a -k \"#{ENV["MATCH_PASSWORD"]}\" -in #{enc_file} -out #{dec_file[0]}"
sh(cmd_decrypt)
输出:
[09:38:15]: --------------------------------------------------------------------
[09:38:15]: Step: openssl enc -aes-256-cbc -d -a -k "PASSWORD_SHOWN!" -in /var/folders/7g/yy/T/d20190925-1304-1qv6cj1/vault/zz-out /var/folders/7g/yy/T/d20190925-1304-1qv6cj1/vault/xx
[09:38:15]: --------------------------------------------------------------------
[09:38:15]: $ openssl enc -aes-256-cbc -d -a -k "PASSWORD_SHOWN!" -in /var/folders/7g/yy/T/d20190925-1304-1qv6cj1/vault/zz -out /var/folders/7g/yy/T/d20190925-1304-1qv6cj1/vault/xx
我认为您正在寻找filter_parameters方法:
https://rubyplus.com/articles/3091-Filtering-Sensitive-Parameters-from-Log-Files-in-Rails-5
该方法已经在您的config / initializers.rb文件中定义,您只需要添加要过滤的内容:
# Be sure to restart your server when you modify this file.
# Configure sensitive parameters which will be filtered from the log file.
Rails.application.config.filter_parameters += [:password]
编辑-我不确定这是否适用于环境变量以及控制器的参数...您可能最终不得不降低日志记录级别
https://guides.rubyonrails.org/debugging_rails_applications.html#log-levels
如果将其设置为:warn或:error,则应防止环境变量在日志中显示。