gpt4 book ai didi

php - 为 Web 应用程序分发和使用 API key

转载 作者:可可西里 更新时间:2023-11-01 01:09:02 26 4
gpt4 key购买 nike

我有一个网络应用程序,我正在为其构建一个 Drupal 模块,允许我的客户访问我的应用程序上的某些数据。

我打算将 secret API key 分发给我的客户,他们需要在他们的 Drupal 模块副本中输入该值。然后这个 Drupal 模块与我的 Web 应用程序对话,但我需要确保 POST 请求确实来自该源。

当我的应用程序接收到它时,如何使用这个“ key ”传递一些信息,它知道:

(a) its from that client's server.
(b) it hasnt been eavesdropped on / copied and used by someone else?

我是否应该使用此 API key 作为密码来加密一些与 POST 请求的其余部分相匹配的数据?收到它时,我使用我的 API key 副本对其进行解密,如果它与其余数据匹配,我认为它已通过验证?

是否有适合我的框架? Zend 中的东西?

最佳答案

使用 HTTPS 并在请求中发送 API key 。就这么简单。

如果您使用 HTTP,那么您将重新发明轮子。

更新:

这是阅读评论后的更新,因为在问题中你没有解释你想将 API key 提供给网站的访问者(在这种情况下,无论你做什么你都会被搞砸)。

juanpaco 的评论解释了该做什么(以及我最初假设你正在做的事情)但我会尝试更详细地解释它。

最重要的是您不要在网络表单中使用 API key 。 API key 仅用于您的客户服务器和您的 API 服务器之间的通信。

这里是一个简单的解释:

  1. 您给您的客户一个 key 和一些软件/模块/库以安装在他的服务器上。
  2. 当访问者访问您客户的网站时,他会看到您的模块生成的一些 HTML 不包含任何 API key ,并且只能与您客户的服务器通信(如果有任何敏感信息,则使用 HTTPS 或涉及的用户帐户)。
  3. 您在客户服务器上的模块接收访问者的请求。
  4. 您的模块使用 API key (通过 HTTPS)连接到您的服务器。
  5. 您的 API 服务器响应客户的服务器。
  6. 客户的服务器响应访问者。

您的 API key 永远不会以明文形式发送并且永远不会提供给网站访问者

这是使用 API key 的唯一合理方式,在我第一次阅读您的问题后,我假设您担心在您的服务器和客户的服务器之间发送 API key 的安全性。

如果您的客户将他们的 key 交给他们网站的每一位访问者,那么无论您多么努力,这些访问者总是能够知道他们。向访问者提供 API key 并使它们可以使用但无法阅读是不可能的。不难 - 不可能。无论您使用什么协议(protocol)、加密或任何东西。

(感谢 juanpaco 让我注意到这个旧答案。)

关于php - 为 Web 应用程序分发和使用 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5273923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com