保护私有API密钥

时间:2015-11-30 18:19:24

标签: php android api security key

所以我一直在寻找关于这整个私有API密钥安全性的问题,我对我应该采取的方法感到困惑,因为我还没有找到具有相同特定内容的人问题/方法比我的。

我正在开发一款通过第三方API开发的Android应用,我通过请求私钥获得了访问权限。现在,2分:

  • 我的应用程序没有直接向我请求API,而是使用它来请求一组PHP文件(托管在应用程序网站上)我编码以简化请求并从中检索数据我正在使用的API,如果您允许的话,可以将其称为“#34;类型的API"”。因此,应用程序仅发出请求,指定我的API应该向原始API请求的内容,并且由此,请求不需要原始API私钥,因为我可以将其存储在一个的PHP文件和需要时使用。
  • 我的应用并不要求用户注册他们的帐户,因此我没有任何用户ID或名称可供处理。

因此,您可以看到我并未试图隐藏应用程序代码中的API密钥,我也不会尝试使用用户ID和签名来允许访问我的API并连续访问到最初的API ..

问题在于,尽管浏览器中无法看到php代码,但其他方式也不可能这样做,因此我也无法将密钥存储在那里。所以我的问题很简单,这仍然是我用来隐藏我的私有API密钥的最佳方法,还是我应该重新考虑我做这个过程的方式?

2 个答案:

答案 0 :(得分:3)

如果我理解正确,您不希望将API密钥存储在公共网络文件夹中,因为它可以在某些条件下公开访问。

我所遵循的建议是将API密钥存储在根网络文件夹之外的文件中。然后,您需要在公共文件夹的脚本中包含/包含该文件。

在Linux环境中,类似这样:

/var/www/your_script.php (public access)
/var/secure/api_key.php (private, web server doesn't access this directory)

在your_script.php中

require_once 'api_key.php'; // example only, you will need to use the correct path
echo $api_key; // testing, you can use the key in the script

在api_key.php中

$api_key = '15r723er8q5re';

答案 1 :(得分:0)

您的应用应该连接到您的服务器,然后服务器代表您的用户将信息发送到需要api密钥的API服务器。应该传输api密钥的唯一时间是你的服务器与API服务器通信。