Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby隐藏API密钥和IP地址?_Ruby - Fatal编程技术网

Ruby隐藏API密钥和IP地址?

Ruby隐藏API密钥和IP地址?,ruby,Ruby,我有一个ruby脚本main.rb,它接受两个参数,ipaddress和apitoken $token = "VALUE" $ip_addr = "ADDRESS" 这些值硬编码到脚本中。当我将项目推入Github的回购时,会收到一条警告,提示我的密钥是可见的 隐藏这些变量的推荐方法是什么?是否只需为这些值添加一个单独的文件并将其添加到.gitignore?接下来,一个简单的方法是创建文件夹.auth\u token和.ip\u addr 在其中添加必要的密钥,并通过读取以下文件来访问这些密钥

我有一个ruby脚本
main.rb
,它接受两个参数,
ipaddress
apitoken

$token = "VALUE"
$ip_addr = "ADDRESS"
这些值硬编码到脚本中。当我将项目推入Github的回购时,会收到一条警告,提示我的密钥是可见的

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

接下来,一个简单的方法是创建文件夹
.auth\u token
.ip\u addr

在其中添加必要的密钥,并通过读取以下文件来访问这些密钥:

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

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

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

将按键按如下方式放入系统环境中

export MY_TOKEN=xyz
export MY_IP_ADDR=a.b.c.d
$token = ENV["MY_TOKEN"]
$ip_addr = ENV["MY_IP_ADDR"]
如果希望它在重新启动shell后可用,请将其放入
~/.bash\u profile

在您的代码中使用如下内容:

export MY_TOKEN=xyz
export MY_IP_ADDR=a.b.c.d
$token = ENV["MY_TOKEN"]
$ip_addr = ENV["MY_IP_ADDR"]


如果您不想使用系统范围的环境变量并将
.env
从git中排除,但将文件放入
.gitignore

难道您不能从github repo中删除它们吗?一种常见的好方法是从环境变量中获取这些值,即
$token=env['token']
等等。@12是,但是假设我想编辑这些文件,每次推之前我都必须删除它们。