python - 我自己的 RPC 服务器 API key

标签 python google-app-engine

我有我的服务(基于 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/

相关文章:

google-app-engine - Google 容器集群中 Pod 的优先级

java - 澄清具有祖先和一个属性的复合索引

java - 验证 appengine-web.xml 的 XML 错误

java - GAE JPA @OneToMany orphanRemoval + Cascade 未按预期工作

python - 将文件读取到 Python 中的字符串列表

python - 在提示时将密码传递给 Python 脚本

Python - 获取最密集点的坐标

java - 项目再次启动(更新)后如何保护我的数据库值?

python - 使用 ID 和 asof 合并两个数据框

python - 有没有办法在 PyCharm 的 Sphinx "Run Configuration"中指定相对路径?