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

部署在Heroku的Rails应用如何为私有IP设置通用展示别名

Rails Heroku环境错误页私有IP泄露修复方案

该修改需在Rails应用侧完成,对应操作步骤如下:

  • 首先确认生产环境已关闭详细错误页展示:检查config/environments/production.rb文件中config.consider_all_requests_local配置,确保值为false。该配置为false时,生产环境报错仅返回静态公共错误页,不会展示包含Remote_addr、堆栈信息、请求参数的诊断页,从根源避免IP泄露。
  • 若业务需要保留生产环境的诊断页展示,可以通过覆盖Rails默认异常中间件的逻辑,替换IP输出:
    在config/initializers目录下新建custom_debug_exception.rb文件,写入以下代码:
    ActionDispatch::DebugExceptions.class_eval do
      alias_method :original_fetch_debug_params, :debug_params
    
      def debug_params(request)
        original_params = original_fetch_debug_params(request)
        original_params['REMOTE_ADDR'] = 'internal-service' if original_params.has_key?('REMOTE_ADDR')
        original_params
      end
    end
    
    上述代码会把诊断页中所有的REMOTE_ADDR值替换为自定义的internal-service通用别名,你可以根据需求修改别名内容。
  • Heroku侧无需额外配置,你扫描到的127.0.x.x段IP为Heroku内部反向代理的私有IP,本身不会泄露客户端真实IP,完成上述应用侧配置即可消除扫描告警。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:24:03