首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >您如何设法将凭据排除在可公开浏览的源代码之外?

您如何设法将凭据排除在可公开浏览的源代码之外?
EN

Stack Overflow用户
提问于 2010-11-09 01:59:49
回答 4查看 503关注 0票数 6

假设您想要显示设置文件的源代码,但不希望在公共源代码中显示3-4行。您只是手动替换这些变量,还是使用了一些技巧,比如将它们包含在另一个单独的文件中,并将其包含在主conf中?

或者更常见的做法是不跟踪该文件并将其包含在存储库中?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-09 02:25:25

我解决这个问题的方式,我必须在我工作的几乎每个项目中处理它,就是利用我从某人那里挑选的模式。在此模式中,受版本控制的主设置文件导入了一个称为"local_settings“的辅助设置文件。该模式不仅可用于防止凭证不受版本控制,还可用于隔离环境/平台特定的设置。这个" local_settings“文件不受版本控制,并且对于部署源代码的每个平台,只为该平台创建一个单独的、特定的local_settings文件。

我将为您提供一个示例,说明我在Django/Python项目中通常是如何做到这一点的。有一个中心的、每个项目的settings.py文件,它处于版本控制之下,还有一个特定于平台的local_settings.py文件(可能这里使用的术语不太适合平台)。从settings.py文件中导入local_settings.py文件,其中以以下方式定义不同的设置变量:

代码语言:javascript
运行
复制
import local_settings

DATABASE_USER = local_settings.db_user
DATABASE_PASSWORD = local_settings.db_pass

并且,作为上述代码片段的示例,local_settings.py文件的定义如下:

代码语言:javascript
运行
复制
db_user = 'user'
db_pass = 'pass'

在处理这个问题时,我发现这个模式非常有效。

票数 6
EN

Stack Overflow用户

发布于 2010-11-09 02:03:10

这取决于上下文,但一个常见的解决方案是拥有一个不包含敏感信息的application.cfg.sample。当您实际部署应用程序时,将该文件复制到application.cfg并编辑密码等。

另一种方法是让示例值为您的开发工作,但没有意义,即:

代码语言:javascript
运行
复制
host: localhost
username: user
password: test

这实际上可能是您的开发工作站上的有效数据库帐户或其他任何帐户,但用户不会认为它是有效的,并且信息几乎不敏感。

票数 4
EN

Stack Overflow用户

发布于 2010-11-09 02:03:28

只需用示例变量替换变量即可。

代码语言:javascript
运行
复制
SETTINGS = {
     username: 'test',
     password: 'mypass'
}

等。

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

https://stackoverflow.com/questions/4126552

复制
相关文章

相似问题

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