禁止在 Ruby on Rails 中登录某些参数

Dar*_*ari 1 ruby parameters logging ruby-on-rails

我注意到,每当 Ruby on Rails 中的任何控制器执行任何操作时,某些日志都会自动写入日志文件,例如:

Processing by CasesController#update as HTML

Parameters: {"utf8"=>"?", 
"authenticity_token"=>"XAAgI8MGxIIyqcBTUqtHvqjechgNHqxKLtZAVIaceZSuhEskQA6i2mjbItbbruabPMPWGM8AXKDWNdnqJRCGBw==",
"versionId"=>"9",
"type"=>"case", 
"queue"=>"filing", 
"disposition"=>"Filed",
 "assignee"=>"abc",
 "decisionDate"=>"2020-05-19",
 "filingDate"=>"2020-05-19",
  "accounts"=>[{"lineOfBusiness"=>"ACCS",
  "obfuscatedMerchantId"=>"A1JLF6PVG3MPCN", 
  "fpsAccountId"=>"",
  "productAccountId"=>"",
  "includeInInvestigation"=>"yes",
  "includeInFiling"=>"yes"}],
  "relatedItems"=>[{"itemType"=>"OBSERVATION_ID",
  "itemValue"=>"RI:1-MPI:1-PI:4839201-JI:10334165-RRD:13-MAY-20-EQR:Rule_ACCS_SAM_MultiACCSBankAccounts-CID:A1JLF6PVG3MPCN"},
 {"itemType"=>"IWB_TASK_ID", "itemValue"=>"7017140401"}],
 "button"=>"", "id"=>"cab90a9e-78e9-6d58-c5c8-c4b3424d0751"}
Run Code Online (Sandbox Code Playgroud)

我想避免记录某些敏感参数,例如我想避免versionId被记录。我怎样才能做到这一点?

spi*_*ann 5

您可以通过将敏感参数添加到config.filter_parameters官方Rails 指南中描述的那样来从日志记录中排除敏感参数:

config.filter_parameters用于过滤掉您不想在日志中显示的参数,例如密码或信用卡号。它还在调用#inspectActive Record 对象时过滤掉数据库列的敏感值。默认情况下,通过增加Rails的过滤掉密码Rails.application.config.filter_parameters += [:password]config/initializers/filter_parameter_logging.rb。参数过滤器通过部分匹配正则表达式工作。