如果这与其他许多问题过于相似,我深表歉意。我搜索并查看了建议的多种解决方案,但似乎没有针对此类问题的通用解决方案-根据回答的问题判断,在不同环境中的同一问题似乎需要非常不同的解决方案。
我构建了几个Ruby客户端脚本,这些脚本从网络中的各种服务器收集信息,并将这些信息注入MySQL数据库。 Ruby脚本必须以用户身份验证这些服务器,因此它们需要身份验证凭据才能连接。有问题的连接是从Ruby客户端到接收服务器,并分别通过:
SOAP(通过savon gem):
soap_client = Savon.client(wsdl: '[URL]')
login_response = soap_client.call(:login, message: { 'userName' => [SOAP CLIENT USERNAME], 'password' => [SOAP CLIENT PASSWORD] })
MySQL(通过mysql2 gem):
@mysql_client = Mysql2::Client.new(:host => [DATABASE HOSTNAME], :username => [DATABASE USERNAME], :password => [DATABASE PASSWORD], :database => [DATABASE NAME])
HTTPS(通过net / https gem):
OpenSSL::PKey::RSA.new(pem,"[KEY DECRYPTION PASSWORD]")
HTTPS客户端不需要用户名/密码即可验证HTTPS服务器。它需要带有密钥的证书,并且解密密钥需要存储在源代码中的密码。我可以将密钥存储在明文中,从而从源代码中删除此密码,但是安全问题就变成了如何保护明文密钥文件。
我要解决的问题是我的源代码中存储了明文密码。我可以将密码存储在一个加密的文本文件中,然后在运行时对该文件进行解密,但是又回到了类似的问题-如何安全地存储解密密钥?
环境是:
感谢您阅读,如果我的问题需要进一步澄清,请告诉我!
答案 0 :(得分:1)
这是我们如何处理脚本所需的机密信息:
public Graphics Graphic { get; set; } //Element to draw on
SomeMethod()
{
Symbol = new Bitmap("C:/Test.JPG");
Position = new Point(100, 300);
Graphic.DrawImage(Symbol, Position);
//Here I want to somehow add the ToolTip to the image
}
)some_password = ENV['SOME_PASSWORD']
文件,用于设置其个人密码和其他机密。.envrc
添加全局gitignore(全局=不是每个项目,而是每个环境)来确保.envrc
从未致力于源代码控制。