我正在制作一个宝石来包装一个 API。该服务需要一些登录参数,因此我创建了一个 Connection 类,通过传入所有登录值进行初始化,并使用实例变量进行存储。@secret_access_key
显然,这些价值观之一是秘密的。它在应用程序中不可读。但是在 irb 中测试 gem 时,我看到在返回对象时密钥与所有其他实例变量一起显示。
mws = MWS::Connection.new :access_key => '1', :secret_access_key => 'SECRET!!!', :merchant_id => '3', :marketplace_id => '4'
=> #<MWS::Connection:0x007fbd22acef40 @access_key="1", @merchant_id="3", @marketplace_id="4", @secret_access_key="SECRET!!!">
我很担心密钥会出现在 Heroku 日志、应用程序错误消息或其他任何内容中。
我应该担心吗?如果是这样,存储或隐藏此信息的最佳方式是什么?
另外,我正在使用 httparty gem 来管理这个,我可以用那个 gem 做些更好的事情吗?