gpt4 book ai didi

api - 保护公共(public) API

转载 作者:行者123 更新时间:2023-12-03 23:45:17 24 4
gpt4 key购买 nike

在阅读之后,似乎试图保护一个可公开访问的 API(由不需要用户登录的应用程序/网站使用的 API)似乎是徒劳的,例如将 key 存储在应用程序中,用户可以对应用程序进行逆向工程。
我的问题是关于如何尽可能地保护和减缓对公共(public)可访问 API 的滥用......
限速?检查请求来源(虽然可以被欺骗)....还有什么?
此外,如果站点是 SSR,它是否仅受服务器 IP 的保护?

最佳答案

你的问题?

After reading around it appears that trying to protect a publically accessible API (API used by an app/site that does not need a user to log in) appears to be fruitless, e.g. store key in app, user can reverse engineer app.


安全性就是深度防御,因此就是要添加尽可能多的层,以降低风险,因此您添加的任何防御都将防止简单/愚蠢的自动化脚本访问它,同时将提高黑客绕过所有防御所需的技能和努力水平。

Rate-limiting?


这是任何 API 都必须使用的,否则自动化脚本可以在几秒钟内轻松提取大量数据。应用此速率限制越严格,其他防御层检测到可能发生对 API 的未经授权访问并尝试缓解/阻止它的机会就越大。请记住,可以通过调整攻击以发出不触发它的请求来绕过速率限制,并且在某些情况下,对于在响应 header 中返回正在应用的限制值的软件可以轻松实现自动化。

Check request origin (although can be spoofed)....


是的,它很容易被绕过,但为什么不呢?这将是过滤掉一些愚蠢的自动化脚本/机器人的又一层防御。

Also if the site is SSR, could it just be protected by the server's IP?


无论是 SSR 站点还是任何其他类型的应用程序,在手机上使用时,IP 地址都会在页面或移动应用程序屏幕的加载过程中发生变化,因为当手机在主机之间切换时,IP 地址会发生变化。还要记住,在办公室或公共(public) wifi 上,所有用户都将拥有相同的 IP。
单独使用它作为阻止措施需要仔细评估,并且通常需要对请求进行指纹识别,以降低阻止共享同一网络的其他有效用户的风险。
我会非常小心地使用它来避免/阻止/限制请求,只有当我可以确定它们是已知的错误 IP,您可以从自己的请求历史记录和/或公共(public)数据集中收集这些 IP 时。
谁在请求中 VS 什么在提​​出请求
对于任何资历的开发人员,一个常见的误解是不知道 在请求中与 不一样什么正在提出请求,因此我们将首先清除它...
访问 API 服务器的 WHO 和 WHAT 之间的区别
虽然您的 API 不使用用户身份验证,但重要的是要了解这种区别,以便更好地围绕 API 服务器中要调整的安全措施执行明智的决策。
我写了一系列关于 API 和移动安全的文章,在文章 Why Does Your Mobile App Need An Api Key?您可以更详细地阅读 之间的区别谁什么正在访问您的 API 服务器,但我将在这里引用它的主要内容:

The what is the thing making the request to the API server. Is it really a genuine instance of your mobile app, or is it a bot, an automated script or an attacker manually poking around your API server with a tool like Postman?


The who is the user of the mobile app that we can authenticate, authorize and identify in several ways, like using OpenID Connect or OAUTH2 flows.


记住差异的最好方法是考虑 作为用户,您的 API 服务器将能够验证和授权对数据的访问,并考虑 什么作为代表用户提出该请求的软件。
保卫 API 服务器

My question relates to how one can protect as much as possible and slow down abuse of a public accessible API...


对于移动 API
对于仅服务于移动应用程序的 API,您可以使用我在 my answer 中描述的移动应用程序证明概念。到问题如何保护移动应用程序的 API REST?。
对于网络应用程序
对于仅服务于 Web 应用程序的 API,我建议您阅读 my answer从应用程序的调用中保护 api 数据的问题?
你想加倍努力吗?

anything else?


您似乎已经进行了一些研究,但您可能还不知道 OWASP 指南和最高风险。
对于网络应用
The Web Security Testing Guide :

The OWASP Web Security Testing Guide includes a "best practice" penetration testing framework which users can implement in their own organizations and a "low level" penetration testing guide that describes techniques for testing most common web application and web service security issues.


对于移动应用
OWASP Mobile Security Project - Top 10 risks

The OWASP Mobile Security Project is a centralized resource intended to give developers and security teams the resources they need to build and maintain secure mobile applications. Through the project, our goal is to classify mobile security risks and provide developmental controls to reduce their impact or likelihood of exploitation.


OWASP - Mobile Security Testing Guide :

The Mobile Security Testing Guide (MSTG) is a comprehensive manual for mobile app security development, testing and reverse engineering.


对于 APIS
OWASP API Security Top 10

The OWASP API Security Project seeks to provide value to software developers and security assessors by underscoring the potential risks in insecure APIs, and illustrating how these risks may be mitigated. In order to facilitate this goal, the OWASP API Security Project will create and maintain a Top 10 API Security Risks document, as well as a documentation portal for best practices when creating or assessing APIs.

关于api - 保护公共(public) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63180306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com