【问题标题】:ActionCable - How to filter out any sensitive data from log in Rails 5ActionCable - 如何从 Rails 5 的日志中过滤掉任何敏感数据
【发布时间】:2019-12-11 07:40:44
【问题描述】:

我想从 actioncable 日志中过滤 sensitive / large 数据。像这样:

AppOnlineChannel#receive({"audio_ch"=>"{filtered}"})

我没有为这项任务找到任何可操作的配置。 有人知道吗,我该怎么做?

提前致谢。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-5 actioncable


【解决方案1】:

这就是我从dispatch_action 方法中过滤特定字段的方式。

方法一:全渠道

  • 我创建了一个config/initializers/actioncable.rb,并且
  • 覆盖dispatch_action 方法

注意:添加此代码后重启服务器

# config/initializers/actioncable.rb

ActionCable::Channel::Base.class_eval do
  def dispatch_action(action, data)
    # logger.info action_signature(action, data)

    # .......... filter data start ..........
    filtered_data = data
    filtered_data['audio_ch'] = '{filtered}' if filtered_data['audio_ch'].present?
    logger.info action_signature(action, filtered_data)
    # .......... ./filter data end ..........

    if method(action).arity == 1
      public_send action, data
    else
      public_send action
    end
  rescue Exception => exception
    rescue_with_handler(exception) || raise
  end
end

方法二:针对特定渠道

此猴子补丁适用于特定频道。

# app/channels/app_online_channel.rb

class AppOnlineChannel < ApplicationCable::Channel
  def dispatch_action(action, data)
     # logger.info action_signature(action, data)

     # .......... filter data start ..........
     filtered_data = data
     filtered_data['audio_ch'] = '{filtered}' if filtered_data['audio_ch'].present?
     logger.info action_signature(action, filtered_data)
     # .......... ./filter data end ..........

     if method(action).arity == 1
       public_send action, data
     else
       public_send action
     end
   rescue Exception => exception
     rescue_with_handler(exception) || raise
   end

【讨论】:

  • 这两个代码都不适合我。
  • @weltschmerz 我正在尝试重现该问题。我会通知你更新。
  • 嗨@weltschmerz,我使用您指定的Rails 和Ruby 版本进行了测试。它完美地工作。你可以查看这个仓库:github.com/mahfuz10/cable_in_six
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多