我有我的服务(基于 JSON 的 RPC),我想保护它不被不允许的程序员滥用。
我知道许多 API 使用私有(private)/公共(public) API key 系统,当 1 个 key 滥用连接时,它们只能杀死这一项服务。如何以简单快捷的方式做到这一点?主要是我只需要知道应该使用哪些算法来生成和检查 key 以及何时(在启动连接时或可能在每个请求时)。
此外,我使用 Google AppEngine 和 Python 作为服务器。
最佳答案
一种快速/简单的方法是为每个有权访问您的服务的开发人员生成唯一的 key :
import random, string
key = "".join([random.choice(string.letters + string.digits + string.punctuation) for _ in xrange(64)])
并让用户在向您的服务发出的每个请求中包含此 key (您可以根据该 key 跟踪使用情况并禁止滥用 key )
这是最基本的方法。如果您需要的不仅仅是 API key 跟踪,例如加密和/或授权,您可以从在线可用的既定协议(protocol)(例如 OAuth)中进行选择
关于python - 我自己的 RPC 服务器 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674065/