安全地存储凭据,您应该非常小心地确保您的凭据被安全地存储。如果有人获得您的api_key或access_token的发送或全部许可,他们将能够发送所有比特币从您的帐户。特别是,除非您已经安全地加密了这些凭据,否则您应该避免将这些凭据存储在您的代码库(它会添加到版本控制中)或数据库中。将凭据从代码库和数据库中分离是一个很好的做法。默认情况下,所有帐户上的API密钥访问都被关闭。因此,如果您决定进行API密钥集成,您需要首先启用它,并从那时起采取必要的步骤来安全地存储它。如果您觉得API密钥已被破坏,您可以随时重新生成它(或者禁用它)。
但是,每当程序崩溃时,它通常会将环境作为崩溃报告的一部分发送:
https://lists.launchpad.net/openjdk/msg01149.html
环境变量:.。
所以..。是哪一种?我不明白为什么在环境中存储密钥比源代码更安全。如果有人进入系统,他们可以同时访问这两个系统。
发布于 2014-02-01 07:57:19
如果您的计算机能够在没有密码的情况下使用API,那么这些信息必须存储在系统的某个地方。将其存储在环境变量中的目的是使其不与源一起签入版本控制,但实际上,理想的做法是使用类似HSM或TPM之类的方法以加密方式存储API密钥,以便以编程方式检索API密钥,或将其存储在使用它的服务或应用程序的帐户凭据加密的磁盘上。
我个人对使用环境变量会犹豫不决,但如果您只是担心意外泄露密钥(对于访问您的框的人来说不是本地安全),那么这是如何分离代码和密钥的一种选择,而不是最好的。
发布于 2014-02-02 05:07:30
使用环境变量可能是非常糟糕的建议。正如您自己指出的,环境变量可能会在某些情况下显示,例如,在PHP世界中,可能会要求您提供一个phpinfo页面,作为对第三方的支持过程的一部分。还要考虑如何以及何时设置环境变量。如果在web服务器启动时设置了该变量,则运行的任何脚本都可以看到该变量。当黑客利用一个网站的弱点来存放他们可以运行的任意脚本(最近的估计显示,每天有10's的数千个站点被攻破),他们可能在几秒钟内就能获得密钥。如果密钥是从代码基中的单个文件中设置的,并且可能是通过受保护的代码或本机代码设置的,那么黑客可能需要更长的时间才能识别密钥。如果您有良好的入侵检测到位,也有一个很好的机会,您将能够阻止他们之前,他们能够分析你的网站,以确定哪里的密钥设置。披露:我与ionCube有关联。
https://security.stackexchange.com/questions/49725
复制相似问题