3

ここでこれに対する良い答えを見つけることができませんでした。

つまり、基本的にはgitシステムとしてbitbucket.orgを使用しています。私のアプリケーションは、APIユーザー名、パスワード、署名などのペイパル資格情報を使用しています。私のコードをチェックアウトして作業する他の開発者からこれらの資格情報を隠すための最良かつ最も安全な方法は何でしょうか?

LAMPスタックを使用しています。CodeIgniterフレームワーク。

gitに追加しないシリアル化されたファイルを作成し、それをライブサーバーにも配置してから、シリアル化を解除して、そこから資格情報を取得することを考えていました。

4

5 に答える 5

5

これは、データベース構成ファイルとは異なる方法で処理する必要はありません。

まず、作成しますapplication/config/paypal.php

// Change this information to match your settings
//$config['paypal_seekrit'] = '';
// whatever else

最初はスタブとして追跡するので、そのよう作成することに注意してください。追加してコミットします。

git add application/config/paypal.php
git commit

次に、に追加して、.gitignoreローカルで追跡されないようにします。追加してコミットし.gitignoreます。次に、コードで次のようなことを行って、人々が物事を適切に設定することを忘れないようにする必要があります。

$this->load->config('paypal');
$seekrit = $this->config->item('paypal_seekrit');
if ($seekrit === FALSE) {
    // config->item returns FALSE by default if item doesn't exist
    log_message('error', 'You need to configure config/paypal.php!');
    // bail out, if appropriate
    show_error('Paypal keys have not been configured');
}

この時点でプッシュできます。これで、誰もがファイルのスタブを手に入れました。誰もが自分の側で何もしないと、押し戻される危険があります。欠点は、オプションを追加または削除するためにデフォルトのスタブを変更する必要がある場合、あなた(および他のすべての人)がマージする必要があることです。しかし、それはとても些細なファイルなので、私はそれを問題とは考えていません。

次に、誤ってコミットしてプッシュすることを心配せずに、秘密鍵をファイルに追加します。ライブラリで使用する場合は、最初に呼び出しget_instance()てフレームワークのスーパーオブジェクト(シングルトン)を取得する必要があることに注意してください。例:

$CI = get_instance();
$CI->load->config('paypal');
$seekrit = $CI->config->item('paypal_seekrit');
...

新しいCIプロジェクトで最初に行うことの1つは、コミットapplication/してから、内の特定のファイルの追跡を停止することですapplication/config

以前にロードされたすべての構成をオーバーライドするサイト固有の設定のcatchall構成ファイルを作成し、そこに貼り付けることもできます(のようなものconfig/appname.php)。config / loaderクラスが、誰かが期待するように機能するようにしてください。

于 2013-01-31T03:51:25.930 に答える
1

あなたは出来る:

1)ローカルで設定した環境変数を使用し、コード内の環境変数名でのみ参照します。

要求に応じて詳しく説明する:以下を使用して、.bashrcなどを使用して環境変数をローカルに設定できます。 EXPORT PAYPALUSERNAME=mypaypalusername

     `EXPORT PAYPALPASSWORD=mypaypalpassword`


     `EXPORT PAYPALSIGNATURE=mypaypalsignature`

そしてあなたのコードで:

     $paypalusername = getenv(PAYPALUSERNAME);

最後に、READMEで次のように言います。

     This code sets the username based on your PAYPALUSERNAME environment variable, please make sure to set it in your code 

2)ある種の構成言語(ymlが頭に浮かぶ)を使用して、API資格情報を設定し、構成ファイルを読み取って解析するようにコードを設定し、ymlファイルをチェックインしないようにします。

いずれの場合も、他の開発者がアプリの操作方法を理解できるように、READMEやコメントが必要になります。

于 2013-01-31T02:22:17.177 に答える
1

資格情報を構成ファイルに保存します。PHPのparse_ini_file関数を見てください:http://php.net/manual/en/function.parse-ini-file.php

codeigntorを使用しているため、次のものも使用できます:http: //ellislab.com/codeigniter/user-guide/libraries/config.html

次に、構成ファイルを生成する種類のビルドスクリプトを作成するか、PayPalサンドボックスのクレデンシャルを使用できます(構成ファイルをチェックインする場合)。

于 2013-01-31T02:38:34.173 に答える
1

私は通常config.example.ini.php、Gitリポジトリにコミットされるものを作成します。アプリケーションをインストールするときに、このファイルをにコピーしてconfig.ini.php、すべての機密データを入力します。また、.gitignoreが含まれconfig.ini.phpているため、このファイルが誤ってコミットされることはありません。

拡張子は、最初の行にコメント.ini.phpが含まれているのはINIファイルであることを意味するだけ__halt_compiler();なので、このファイルへの直接の要求は何も表示しません。このファイルをロードするには、parse_ini_file()関数を使用します。

于 2013-01-31T03:58:52.507 に答える
0

CodeIgniter環境を見てください。localhost、developmentなどのディレクトリに任意のconfig /ファイルを設定し、gitはそれらを無視して、表示されているフォルダーにサンドボックスのクレジットを配置することができます。

http://ellislab.com/codeigniter/user-guide/general/environments.html

于 2013-01-31T03:40:22.567 に答える