如何在我的应用程序中使用api保存第三方应用程序的密码?
问题描述:
我需要在我的PHP应用程序中保存第三方应用程序密码,以便在后台进程中连接到API。我需要将密码存储在数据库中,并且密码是针对应用程序的每个用户的。但我不知道什么是正确的方式来保存它,以便以后检索它。如何在我的应用程序中使用api保存第三方应用程序的密码?
我不想将不加密保存密码,但我不知道这是要做到这一点
任何想法的最佳方法(易)?
答
除非某种OAuth机制可用于API,否则您可能会以纯文本形式存储它。一旦攻击者可以访问密码的加密形式,那么他们很可能有权访问解密该密码的代码。
我的首选方法是:
inc.credentials.php
<?php
$app_creds = array(
'username' => 'sammitch',
'password' => 'isgreat'
);
actual_code.php
<?php
require('inc.credentials.php');
app_login($app_creds['username'], $app_creds['password']);
unset($app_creds);
- 始终使用这些透过PHP解释器,以便运行文件扩展名该文件将不会作为纯文本提供。
- 总是离开关闭
?>
所以没有意外输出。 [最有可能的空白] -
unset()
大多是偏执狂,但只是在代码注入的情况下。
我需要将密码存储在数据库中,并且密码是针对应用程序的每个用户的,不仅用于管理目的。你会怎么做?但是一个伟大的方法! – Sangar82 2013-02-21 21:39:05
@ Sangar82我的观点仍然是纯文本,但这不是一个好主意,因为现在不是仅仅有可能丢失*密码,而是拥有一个包含所有用户密码的数据库。唯一的*好*的答案是使用OAuth令牌或类似的东西,但如果API不支持它,那么你可以做的不多。您当然可以[加密密码](http://stackoverflow.com/a/6639179/1064767)以减少小型SQL注入可能会暴露密码的可能性,但是如果有人进入页面的源代码,它是所有戳穿。 – Sammitch 2013-02-21 21:53:02