首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何处理公共git存储库中的敏感数据?

如何处理公共git存储库中的敏感数据?
EN

Stack Overflow用户
提问于 2012-03-04 23:28:45
回答 3查看 7.5K关注 0票数 24

当你把你的代码放在一个公共的git库中时,你是如何处理敏感数据的,比如保密的API密钥,散列盐?

显然,将敏感数据保留在代码中会损害它。

另一种解决方案是不将秘密信息硬编码在代码中,而是将其存储在一个独立的文件中并激活该文件。这样做的缺点是,当有人第一次提取您的代码时,秘密信息将丢失,并且不会开箱即用。这可以通过在代码中编写一个“如果缺少初始化”例程来解决,但是这样做会让git系统滑入您的代码中,这不是一件好事。

另一种解决方案是创建一个“默认”秘密信息文件,在项目开始时提交它,然后使用您自己的信息而不提交它。但是这可能会让git抱怨当你拉的时候你有未提交的更改。

那么处理这个问题的常用方法是什么呢?

EN

回答 3

Stack Overflow用户

发布于 2012-11-16 04:00:49

尝试对配置了加密/解密筛选器的路径使用.gitattributes

代码语言:javascript
复制
*secure.yml filter=crypt

在.git/config中添加crypt filter的配置:

代码语言:javascript
复制
[filter "crypt"]
    clean = openssl enc ...
    smudge = openssl enc -d ...
    required
票数 10
EN

Stack Overflow用户

发布于 2012-10-18 19:09:43

可以说,您不应该将这些属性硬编码到您的源代码中,因为管理员希望在给定的系统上更改它们。如果这些属性在属性文件中(例如,在您的主目录中),问题就解决了。

对于可能遇到麻烦的用户,您可以签入一个默认文件,他们可以将该文件复制到自己的主文件夹并进行修改。如果错误消息和自述文件中缺少此特定文件的主题是明确的,则此设置将工作得很好。

票数 4
EN

Stack Overflow用户

发布于 2017-10-27 04:02:58

如果有人需要他们的Android项目,我找到了最简单的方法:

第1步:使用以下命令创建res/values/secrets.xml:

代码语言:javascript
复制
<!-- Inside of `res/values/secrets.xml` -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="parse_application_id">xxxxxx</string>
    <string name="parse_client_secret">yyyyyy</string>
    <string name="google_maps_api_key">zzzzzz</string>
</resources>

步骤2:在代码或xml文件中使用它

代码语言:javascript
复制
getString(R.string.parse_application_id),
getString(R.string.parse_client_secret)

代码语言:javascript
复制
<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="@string/google_maps_api_key"/>

步骤3:将该行添加到.gitignore文件中

代码语言:javascript
复制
 **/*/res/values/secrets.xml

这是完整的article

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

https://stackoverflow.com/questions/9556126

复制
相关文章

相似问题

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