security - 在服务器上存储开发者 API key / secret

标签 security api

亚马逊的 API 要求您拥有一个签名,该签名是许多元素的组合,其中一个元素是 secret 。服务器通过将参数中传递的 API key 与存储在数据库中的 secret 进行匹配来检查此签名。

我的问题是,亚马逊如何匹配API key 和 secret ,不会每次都进行查询使数据库过载。另外,为数百万开发人员缓存 api key 和结果不会导致内存短缺吗?

或者因为它只有 30 个字符,所以 30 个字节?只需要 286 兆内存?

如果我使用 Memcached 来存储这些键和值对又怎么样?假设我分配了 1GB 的 memcached,查找验证键/值的速度有多快

最佳答案

亚马逊几乎肯定有一种非常优化的方法来存储和检索 secret 。他们没有在 MySQL 数据库中查找它。解决这个问题实际上并不是一个巨大的架构挑战。

我猜他们有一个分布式的hastable,其中很大一部分缓存在RAM中。他们有足够的内存。

关于security - 在服务器上存储开发者 API key / secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2066782/

相关文章:

android - 在不对每个 Web 服务调用使用 SSL 加密的情况下保持持久登录

javascript - Javascript API 的安全性

Azure 数据工厂 REST API 返回无效的带分页的 JSON 文件

javascript - 在 ReactJS 中添加 URLSearchParams 条件

javascript - 为什么这里是 "Unexpected token"错误?

c# - 任何特定于 C# 的编码安全问题?

php - 如何将敏感数据安全地存储在 MySQL 数据库中?

ruby-on-rails - Rails 5 redirect_back 方法是安全漏洞吗?

api - 如何使用虚拟主机“/”进行RabbitMQ API调用?

javascript - 我使用 Node.js 和 Express 实现 Restful API 的正确 url 路径是什么