我有一个ruby脚本main.rb
,它包含两个参数,ipaddress
和apitoken
。
$token = "VALUE"
$ip_addr = "ADDRESS"
这些值被硬编码到脚本中。当我将项目推送到Github的仓库时,我收到一条警告,表明我的钥匙是可见的。
隐藏这些变量的推荐方法是什么?是否为这些值添加单独的文件并将其添加到.gitignore
?
答案 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