【问题标题】:How to protect web client ID in GCP source code如何保护 GCP 源代码中的 Web 客户端 ID
【发布时间】:2017-11-17 17:01:23
【问题描述】:

我的 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 并且有人可以访问它。但我认为这是另一回事。

【问题讨论】:

    标签: google-app-engine google-cloud-platform google-cloud-endpoints


    【解决方案1】:

    有很多方法可以做到这一点。一种方法是始终签入客户端 ID 的默认值,这样当人们签出您的代码时,他们必须对其进行修改以进行部署。您还可以将客户端 ID 移动到其自己的模块中而不签入,并期望他们使用自己的客户端 ID 创建自己的模块。这样可以避免始终修改签入文件的状态。

    【讨论】:

      【解决方案2】:

      客户端 ID 本身信息不足以生成有效令牌。所涉及的密码学将阻止此类人访问您的 API。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-18
        • 2023-04-01
        • 1970-01-01
        • 2012-01-18
        • 2012-09-03
        • 1970-01-01
        • 1970-01-01
        • 2015-04-14
        相关资源
        最近更新 更多