保护私钥 API
Securing private API key
所以我一直在搜索整个私有 API 密钥的安全性,我对我应该采用的方法感到有点困惑,因为我还没有找到具有相同特殊性的人issue/approach 比我的还好。
我正在开发一个 Android 应用程序,该应用程序通过第三方 API 运行,我通过请求私钥获得了访问权限。现在,2 分:
- 我的应用程序不直接请求我正在使用的 API,而是请求我编码的一组 PHP 文件(托管在应用程序网站上)以简化从我正在使用的 API 请求和检索数据,如果您允许的话,我们将其称为 "sort of API"。因此,从应用程序仅发送指定我的 API 应该向原始 API 请求什么的请求,因此,请求不需要原始 API私钥,因为我可以将它存储在 php 文件之一中并在需要时使用。
- 我的应用程序不要求用户注册他们的帐户,因此我没有任何用户 ID 或名称可用于请求。
因此,从这里您可以看出我并没有试图在应用程序代码中隐藏 API 键,我也没有试图使用用户 ID 和签名来允许访问我的 API 并连续到原来的 API..
问题是,尽管无法在浏览器中看到 php 代码,但并非不可能以其他方式这样做,所以我不能安全地将我的密钥存储在那里任何一个。所以我的问题很简单,这仍然是我用来隐藏私人 API 密钥的最佳方法,还是我应该重新考虑我执行所有这些过程的方式?
您的应用程序应连接到您的服务器,然后代表您的用户将信息发送到需要 api 密钥的 API 服务器。唯一应该传输 api 密钥的时间是当您的服务器与 API 服务器通信时。
如果我理解正确的话,你不想将 API 密钥存储在你的 public 网络文件夹中,因为在某些情况下它可能 public 可以访问.
我遵循的建议是将 API 密钥存储在根 Web 文件夹之外的文件中。然后,您 require/include 脚本中 public 文件夹中的那个文件。
在 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';
所以我一直在搜索整个私有 API 密钥的安全性,我对我应该采用的方法感到有点困惑,因为我还没有找到具有相同特殊性的人issue/approach 比我的还好。
我正在开发一个 Android 应用程序,该应用程序通过第三方 API 运行,我通过请求私钥获得了访问权限。现在,2 分:
- 我的应用程序不直接请求我正在使用的 API,而是请求我编码的一组 PHP 文件(托管在应用程序网站上)以简化从我正在使用的 API 请求和检索数据,如果您允许的话,我们将其称为 "sort of API"。因此,从应用程序仅发送指定我的 API 应该向原始 API 请求什么的请求,因此,请求不需要原始 API私钥,因为我可以将它存储在 php 文件之一中并在需要时使用。
- 我的应用程序不要求用户注册他们的帐户,因此我没有任何用户 ID 或名称可用于请求。
因此,从这里您可以看出我并没有试图在应用程序代码中隐藏 API 键,我也没有试图使用用户 ID 和签名来允许访问我的 API 并连续到原来的 API..
问题是,尽管无法在浏览器中看到 php 代码,但并非不可能以其他方式这样做,所以我不能安全地将我的密钥存储在那里任何一个。所以我的问题很简单,这仍然是我用来隐藏私人 API 密钥的最佳方法,还是我应该重新考虑我执行所有这些过程的方式?
您的应用程序应连接到您的服务器,然后代表您的用户将信息发送到需要 api 密钥的 API 服务器。唯一应该传输 api 密钥的时间是当您的服务器与 API 服务器通信时。
如果我理解正确的话,你不想将 API 密钥存储在你的 public 网络文件夹中,因为在某些情况下它可能 public 可以访问.
我遵循的建议是将 API 密钥存储在根 Web 文件夹之外的文件中。然后,您 require/include 脚本中 public 文件夹中的那个文件。
在 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';