我的GAE应用程序在GCP中发布了一些API,并使用以下结构:
# Replace the following lines with client IDs obtained from the APIs
# Console or Cloud Console.
WEB_CLIENT_ID = '????????????.apps.googleusercontent.com'
ALLOWED_CLIENT_IDS = [WEB_CLIENT_ID, endpoints.API_EXPLORER_CLIENT_ID]
SCOPES = [endpoints.EMAIL_SCOPE]
@endpoints.api(name=API_NAME,
version=API_VERSION,
description='An API to manage languages',
allowed_client_ids=ALLOWED_CLIENT_IDS,
scopes=SCOPES)
我怀疑是否有人从我的机器或GitHub项目中选择了这个源代码。他或她可以使用发现的Web客户端ID访问API。
在这种情况下,最佳做法是什么?
我承认客户端可以公开ID,并且有人可以访问它。但我相信这是另一回事。
答案 0 :(得分:0)
有很多方法可以做到这一点。一种方法是始终检查客户端ID的默认值,以便当人们检查您的代码时,他们必须修改它以进行部署。您还可以将客户端ID移动到其自己的模块,而不是将其检入,并期望他们使用自己的客户端ID创建自己的模块。这样可以避免在任何时候都为已签入文件修改状态。
答案 1 :(得分:0)
客户端ID本身不足以生成有效令牌。所涉及的加密将阻止此人访问您的API。