2013-02-21 42 views
1

我需要在我的PHP应用程序中保存第三方应用程序密码,以便在后台进程中连接到API。我需要将密码存储在数据库中,并且密码是针对应用程序的每个用户的。但我不知道什么是正确的方式来保存它,以便以后检索它。如何在我的应用程序中使用api保存第三方应用程序的密码?

我不想将不加密保存密码,但我不知道这是要做到这一点

任何想法的最佳方法(易)?

回答

2

除非某种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); 
  1. 始终使用这些透过PHP解释器,以便运行文件扩展名该文件将不会作为纯文本提供。
  2. 总是离开关闭?>所以没有意外输出。 [最有可能的空白]
  3. unset()大多是偏执狂,但只是在代码注入的情况下。
+0

我需要将密码存储在数据库中,并且密码是针对应用程序的每个用户的,不仅用于管理目的。你会怎么做?但是一个伟大的方法! – Sangar82 2013-02-21 21:39:05

+0

@ Sangar82我的观点仍然是纯文本,但这不是一个好主意,因为现在不是仅仅有可能丢失*密码,而是拥有一个包含所有用户密码的数据库。唯一的*好*的答案是使用OAuth令牌或类似的东西,但如果API不支持它,那么你可以做的不多。您当然可以[加密密码](http://stackoverflow.com/a/6639179/1064767)以减少小型SQL注入可能会暴露密码的可能性,但是如果有人进入页面的源代码,它是所有戳穿。 – Sammitch 2013-02-21 21:53:02

相关问题