【问题标题】:Does it make sense to have an API key for accessing my api on my frontend?在我的前端访问我的 api 的 API 密钥是否有意义?
【发布时间】:2020-12-29 22:37:46
【问题描述】:

据我了解,API 密钥通常用于第 3 方访问,但使用一个来验证它是我的前端与 api 对话是否有意义?我想尽可能地保护我的 API,所以任何其他提高其安全性的想法都会很棒

【问题讨论】:

  • 定义“安全”。如果任何人都可以访问您的网站,并且该网站将与您的 API 对话,无论是否使用密钥,那么用户不需要以任何方式进行身份验证,并且访问对于所有意图和目的都是匿名的。访问您的 API 所需的关键是公共知识。这可能会使直接访问 API 变得稍微不方便,但任何想要访问的人仍然可以。
  • 这是一个很好的观点。所以理论上,如果我能猜到一些公司的内部 api,我可以向他们的联系表单端点提交一个发布请求,并且预计会通过?即使没有真正的安全风险,它的开放性和可访问性似乎也很奇怪
  • 考虑当您使用服务器端渲染而不是通过 API 获取数据的 Javascript 网站时会发生什么。然后你的服务器会泄露并接受完全相同的数据,只是用 HTML 而不是 JSON 包装。它没有任何根本区别。
  • 酷,有道理。感谢您的帮助

标签: api web django-rest-framework api-security


【解决方案1】:

一个 api 密钥,内部使用是有意义的,超出了安全范围。

示例:您有一个 Web 前端和一个应用程序 (ios),您可以识别不同类型的 REST 客户端。您可以按客户类型添加速率限制。

保护您的 API 的第一个检查可能是“您使用 HTTPS”吗?

另见:djangorestframework-api-key 和:When and why api key by google

【讨论】:

    猜你喜欢
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2012-12-18
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 2014-05-17
    相关资源
    最近更新 更多