You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rails 6中禁用ActiveRecord对非敏感含token字段的参数过滤

Rails 6 关闭token字段自动过滤配置方法

Rails 6 默认开启的ActiveRecord属性敏感过滤机制,会自动将字段名包含token、secret、password的内容在日志、控制台输出时替换为[FILTERED],按以下配置可调整过滤规则:

方案1:全局移除token字段过滤规则

在项目的 config/initializers/filter_parameter_logging.rb 文件中添加如下代码:

# 移除全局默认的token字段匹配规则
ActiveRecord::Base.filter_attributes = ActiveRecord::Base.filter_attributes.reject do |rule|
  rule.is_a?(Regexp) && rule.match?(/token/i)
end

如果需要自定义全局过滤列表,也可以直接赋值:

# 仅过滤指定的敏感字段,排除token相关
ActiveRecord::Base.filter_attributes = [:password, :password_digest, :credit_card]

方案2:仅针对指定模型开放token字段(安全性更高)

如果仅部分模型的token字段非敏感,可直接在对应模型文件中单独调整过滤规则:

class YourTargetModel < ApplicationRecord
  # 仅移除当前模型的token过滤规则,保留全局其他过滤规则
  self.filter_attributes = self.filter_attributes.reject do |rule|
    rule.is_a?(Regexp) && rule.match?(/token/i)
  end
end

配置完成后重启Rails服务、Rails控制台即可生效,对应token字段会正常在日志和控制台中打印明文内容。

注:如果需要请求日志中的token参数也正常显示,可同步移除Rails.application.config.filter_parameters数组中的:token项,修改位置同样为上述初始化文件。


内容的提问来源于stack exchange,提问作者hummmingbear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:00:06