谷歌应用引擎 - 如何防止密码泄露

3
我正在使用GAE运行我的应用程序。我的应用程序使用密码连接外部服务。 目前,我将此密码存储在作为源代码一部分的自由文本属性文件中。 因为我在git-hub上分享我的源代码,所以我的密码被泄露了。
有没有一种方法可以将这种敏感信息存储在GAE配置/环境中(使用管理门户)或类似的地方。 我猜我可以将其存储在DataStore中,但我正在寻找像heroku ENV solution 这样简单的东西。
2个回答

5

保持一个单独的、被.gitignore忽略的未版本化文件,其中包含你的密码(例如“private.py”)。然后,在你的版本化源代码中添加一个带有占位符的示例文件版本(例如“private.py.sample”)。


这是我处理与某些第三方API通信所使用的私有API密钥的方式。 - systempuntoout
事实上,情况更加复杂:我们是两个使用此git存储库的开发人员。因此,我希望我们都拥有相同的源代码(在协作时使用.gitignore有些问题)。我希望GAE支持应用程序配置。 - Yonatan Maman
2
你不经常更改外部服务密码,对吧?将只包含密码的文件副本交给另一个开发人员,让他们也将其.gitignore,你可能永远不需要再次修改该文件。不要将密码放在与其他配置选项相同的代码文件中。 - Amber
在GAE 1.7.6中(发布于2013年3月19日): 现在应用程序可以使用application_readable标志打开在app.yaml中声明为静态文件的文件。 (http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes) - Ed Randall

1
class AppConfig(db.Model):
    pass = db.StringProperty()

# ...
cfg = AppConfig.get_by_key_name("MyFirstApplication")
if cfg is None:
    cfg = AppConfig(key_name="MyFirstApplication")
    # this is initial run - request pass from user
    cfg.pass = userInput
    cfg.put()
# here you can use your cfg.pass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接