首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个封闭的源网站应该在其源中保留一个秘密密钥吗?

一个封闭的源网站应该在其源中保留一个秘密密钥吗?
EN

Security用户
提问于 2011-09-30 07:17:37
回答 5查看 951关注 0票数 6

各种API(如Facebook或Amazon )需要一个秘密密钥来验证对该服务的访问。显然,如果源代码是公开的,关键不应该在源代码中!对于一个封闭的源网站来说呢?

EN

回答 5

Security用户

回答已采纳

发布于 2011-09-30 11:47:36

我推荐的做法是不要将键放入源代码中。对于你的特殊情况,最好的选择取决于一些细节。

通常,首选项是将密钥保存在没有存储在源代码存储库中的单独文件中。如果您愿意,甚至可以有一个secrets目录,并将密钥存储在那里。通常,您向适当的用户发出密钥--那些需要进行最终构建的用户或可以测试需要密钥的功能的构建者。

如果您有使用源代码的人员不完全信任密钥(例如,如果外包的程序员添加到您的代码中),则如果代码没有秘密,您可以将代码配置为以后备模式操作。这可能适合你的情况,也可能不适合你。

我应该指出,如果分发对象代码,就没有什么好的方法来保守密钥秘密。这种方法只适用于不仅是封闭源,而且是封闭分布的程序。如果您需要做一些混淆处理,那么不仅键,而且混淆器应该在secrets目录中,并且它的分布受到限制。

票数 9
EN

Security用户

发布于 2011-10-03 11:41:00

源代码生命周期和密钥管理可能发生冲突。例如,您可以(应该)使用版本控制工具 (如Subversion )来存储对源代码执行的连续修改;如果将密钥放在其中,则密钥也将被存储。基本上,如果您将密钥存储在Web站点源代码中,则需要使源代码与密钥完全相同;密钥很小,因此被认为更容易保密(例如,在纸上写下密钥并将纸张保存在保险箱中是可以想象的,因为输入回来可以在几秒钟内完成),而整个站点的源代码则要麻烦得多。如果您将密钥存储在源代码中,那么,突然之间,获取网站源代码的副本成为攻击者非常有价值的目标。

票数 6
EN

Security用户

发布于 2011-09-30 12:21:47

如果使用“在源代码中”,您的意思是作为文件中逻辑代码的一部分,我会同意其他人的意见:不要这样做。就PHP而言,您的代码片段可能会在调试报告中显示出来,甚至可能在网站上(至少在dev视图中)。

另外两个选项是--一个专用的配置文件,使用的是用于项目的编程语言。然后,您可以将它包括在需要它的地方,或者更好地使用类似Registry模式的东西。优点是,文件在直接调用时会被解释,不会输出机密信息。-专用纯文本圆锥形文件。必须保护它不受直接调用的影响,例如,将其置于DocumentRoot之外。

我主要使用后者,通常只在DocRoot中放置一个前端控制器,并将所有库、信任项、大部分数据等与此并行。

票数 4
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/7747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档