gpt4 book ai didi

json - 我们如何通过网络安全地将 API key 和 secret token 交付给用户?

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:23 28 4
gpt4 key购买 nike

我们如何防止公共(public) API 泄​​露主 API key /凭据和 secret token ?

我目前正在开发一个带有一些公共(public) API 的网络应用程序,它应该使用 API key 和 secret token ,并且正在寻找一种方法来创建一个非常安全的 API 并查看了一些最大平台的 API ,例如 SoundCloud。

read some guides (如 https://github.com/interagent/http-api-design )关于好的( Restful )API 设计,但它们没有提供太多关于安全性(API key 和 token )以及如何在公共(public) API 中检索或创建它们的信息。

看看https://a-v2.sndcdn.com/assets/sc-q9dV-e79e4b4a.js并搜索 b45b1aa10f1ac2941910a7f0d10f8e28

这是 SoundCloud 的主 API key 。

他们的一些 URL 如下所示:
https://api.soundcloud.com/tracks/id/stream?client_id=client_id
https://api.soundcloud.com/tracks/id/stream?secret_token=secret_token&client_id=client_id
https://api.soundcloud.com/playlists/playlist_id/?secret_token=secret_token&client_id=client_id

我知道许多工具已经在使用这个 key 从 SoundCloud 用户那里获取/下载所有歌曲。

此外,他们所有的私有(private)和 secret 小部件也会在请求和源代码中显示 secret token 。它们被硬编码在嵌入代码的 JavaScript 代码中。

问题存在多年,开发人员似乎没有使用安全 API 的经验 http://tunelab.com/2011/08/04/this-is-the-problem-with-soundcloud/

此类使用 JavaScript 和 JSON 的 API 如何防止泄露这些 token 和凭据?

我对此的看法:

  • 主 API key 只能通过/从 soundcloud.com 访问
  • 应该有某种域/IP 阻止/限制//所有 API key 的防火墙
  • 对所有 API key 使用 OAUTH,而不仅仅是没有身份验证的简单 JSON API
  • 动态生成一次性( secret ) token ,不要一直重复使用相同的 token
  • 从 SoundCloud 服务器动态获取 API key 和 token ,而不是将它们放入嵌入代码和请求中
  • 使用某种隐写术

当我读到 SoundCloud 是最大的音乐社区并且大型音乐标签从新专辑或即将发行的专辑上传他们的歌曲时(即使是私有(private)歌曲并通过网站上的小部件发布它们, secret token 也会被泄露)似乎, SoundCloud 背后的团队不想保护他们的用户免受盗版/窃取歌曲的侵害,也不愿意创建安全的 API。

您如何看待 soundcloud.com 上的这种危急情况?JavaScript/JSON API 如何才能在不泄露任何关键数据(如 token 和 API key )的情况下以正确的方式更加安全/安全?例如使用 AJAX 并在网站加载后检索 API key 和 token ?Spotify 和其他流媒体平台如何保护他们流式传输的数据并获取 token 和 API key ?将这些信息存储在 URL 或请求 URL 中是否安全?

如何使用 JavaScript、HTML、AJAX 和 PHP 通过网络安全地将 API key 和 secret token 发送给我的用户?

最佳答案

how do I deliver the API keys and secret tokens securely over the wire to the users?

只有一种可靠的方法:为您的网站使用 HTTPs 以允许用户检索 key 。

然后在 API 调用期间不再需要 HTTPS。您的用户可以使用 HMAC authentication使用共享 key 散列 key 。

关于json - 我们如何通过网络安全地将 API key 和 secret token 交付给用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24589374/

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