Ruby隐藏API密钥和IP地址?

时间:2018-02-10 03:12:22

标签: ruby

我有一个ruby脚本main.rb,它包含两个参数,ipaddressapitoken

$token = "VALUE"
$ip_addr = "ADDRESS"

这些值被硬编码到脚本中。当我将项目推送到Github的仓库时,我收到一条警告,表明我的钥匙是可见的。

隐藏这些变量的推荐方法是什么?是否为这些值添加单独的文件并将其添加到.gitignore

这么简单

2 个答案:

答案 0 :(得分:1)

就个人而言,我不喜欢在代码中使用open和文件操作。更好的方法是使用以下方法之一,

将密钥放在系统环境中,如下所示,

export MY_TOKEN=xyz
export MY_IP_ADDR=a.b.c.d

如果您希望在重新启动shell后使其可用,请将其放在~/.bash_profile

并在您的代码中使用如下,

$token = ENV["MY_TOKEN"]
$ip_addr = ENV["MY_IP_ADDR"]

如果您不想要系统范围的环境变量并且从git中排除.env,而是将文件放在.gitignore中,则可以使用dotenv gem

答案 1 :(得分:0)

遵循此guide,一种简单的方法是创建文件夹.auth_token.ip_addr

在其中添加必要的密钥,并通过读取文件来访问它们,如下所示:

$token = open("lib/assets/.auth_token").read()
$ip_addr = open("lib/assets/.ip_addr").read()

如果要推送到存储库,请确保将文件夹添加到.gitignore