使用Codeigniter,如何隐藏其他开发人员的Paypal凭据?

Cod*_*ack 3 php mysql git codeigniter paypal

在这里找不到一个好的答案.

所以基本上我使用bitbucket.org作为我的git系统.我的应用程序使用paypal凭据,如api用户名,密码,签名.从签出和处理我的代码的其他开发人员隐藏这些凭据的最佳和最安全的方法是什么?

我使用LAMP堆栈.CodeIgniter框架.

我想有一个我没有添加到git的序列化文件,也把它放在实时服务器上,然后反序列化它并从中提取凭据.

Tim*_*ost 5

您不必像处理数据库配置文件那样处理此问题.

首先,创建application/config/paypal.php:

// Change this information to match your settings
//$config['paypal_seekrit'] = '';
// whatever else
Run Code Online (Sandbox Code Playgroud)

请注意,创建它就像那样,因为您最初将它作为存根进行跟踪.添加并提交:

git add application/config/paypal.php
git commit
Run Code Online (Sandbox Code Playgroud)

现在,添加它.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');
}
Run Code Online (Sandbox Code Playgroud)

此时你可以推.现在每个人都有一个文件的存根,任何人都没有做任何事情就会被推回.缺点是,如果您需要更改默认存根以添加或删除选项,您(以及其他所有人)将需要合并.但是,这是一个如此微不足道的文件,我不认为这是一个问题.

然后,将您的密钥添加到文件中,而不必担心意外提交和推送它们.注意,如果在库中使用它,首先必须调用get_instance()以获取框架超级对象(单例),例如:

$CI = get_instance();
$CI->load->config('paypal');
$seekrit = $CI->config->item('paypal_seekrit');
...
Run Code Online (Sandbox Code Playgroud)

我在新的CI项目上做的第一件事就是提交application/,然后停止跟踪某些文件application/config.

您还可以为特定于站点的设置创建一个捕获所有配置文件,以覆盖所有以前加载的配置并将其粘贴在那里(类似于config/appname.php).只要确保以配置/加载器类工作的方式执行它,就像有人希望它们工作一样.