24

コードをパブリックgitリポジトリに保持する場合、秘密のAPIキーやハッシュソルトなどの機密データをどのように処理しますか?

明らかに、機密データをコードに保持すると、データが危険にさらされます。

別の解決策は、秘密情報をコードにハードコーディングするのではなく、スタンドアロンファイルに保存し、ファイルをgitignoreすることです。これには、誰かが初めてコードをプルしたときに秘密情報が失われ、箱から出して実行されないという欠点があります。これは、コードに「欠落している場合は初期化」ルーチンを記述することで説明できますが、その場合、gitシステムをコードに挿入することになります。これはIMOでは適切ではありません。

また、別の解決策は、「デフォルト」の秘密情報ファイルを作成し、プロジェクトの開始時にそれをコミットしてから、コミットせずに独自の情報を使用することです。しかし、これにより、プルしたときにコミットされていない変更があるとgitが文句を言う可能性があります。

では、これを処理する一般的な方法は何ですか?

4

5 に答える 5

10

暗号化/復号化フィルターが構成されているパスに.gitattributesを使用してみてください。

*secure.yml filter=crypt

そして、.git/configにcryptフィルターの構成を追加します。

[filter "crypt"]
    clean = openssl enc ...
    smudge = openssl enc -d ...
    required
于 2012-11-15T20:00:49.313 に答える
4

管理者は特定のシステムでこれらのプロパティを変更するオプションを必要とするため、これらのプロパティをソースにハードコーディングしないでください。これらのプロパティがプロパティ ファイル (ホーム ディレクトリなど) にある場合、問題は解決されます。

問題が発生する可能性があるユーザーは、ホーム フォルダーにコピーして変更できるデフォルト ファイルをチェックインできます。エラー メッセージと README が、この特定のファイルが見つからないという件名で明確である場合、このセットアップは非常にうまく機能します。

于 2012-10-18T11:09:42.747 に答える
2

最善の解決策は、プライベートgit submoduleおよびパブリックのgitリポジトリです。

詳細については、この質問を参照してください。あなたのための素晴らしい引用:

除外または無視すると、ファイルがリポジトリに追加されないようにするだけです。「機密ファイル」ファイルはどれもリポジトリになく、作業ディレクトリにあります。

于 2012-03-04T15:37:37.860 に答える
0

「デフォルト」の秘密情報ファイルは良い考えですが、ファイルを無視しても git 警告を回避する方法はありません。github ヘルプ ページから:

git は、ルールがこのファイルに追加されて無視される前に既に追跡されていたファイルを無視しません。そのような場合、ファイルは追跡されないようにする必要があります。git rm --cached filename

したがって、「ダミー」または「デフォルト」ファイルを追加して無視しても、警告は回避されません。このアプローチは機能しますが、すべてのコミットから機密ファイルを常に手動で除外する必要があるため、不便です。

ファイルの追跡を解除すると、ファイルが github から削除され、そもそもファイルを保持する目的が無効になります。

おそらく、サブモジュールの提案が機能するでしょう。

于 2012-03-06T21:04:58.387 に答える