gpt4 book ai didi

rest - 如何保护 API 端点以报告客户端 JS 错误以防止垃圾邮件(如果有必要)?

转载 作者:行者123 更新时间:2023-12-05 05:11:43 27 4
gpt4 key购买 nike

我正在使用 Spring Boot 和 React.js SPA 开发 Web 应用程序,但我的问题并不特定于这些库/框架,因为我假设向服务器报告客户端 JS 错误(用于记录和分析)必须是许多现代 Web 应用程序的常见操作。

因此,假设我们有一个捕获错误的 JS 客户端应用程序和一个 REST 端点 /errors,它采用一个 JSON 对象来保存发生的事情的相关信息。客户端应用程序将数据发送到服务器,它被存储在数据库(或其他)中,每个人都很高兴,对吧?

现在我不是了,真的。因为现在我有一个开放的(如允许未经身份验证的创建/写入操作)API 端点,任何人只需一点知识就可以轻松发送垃圾邮件。

我可能会验证端点接受的 JSON 数据的结构,但这并不能真正解决问题。

在“Open REST API attached to a database- what stops a bad actor spamming my db?”或“Secure Rest-Service before user authentification”这样的问题中,有如下建议:

  • 访问配额(但我不想保存 IP 或任何东西来识别客户)
  • Captchas(显然对错误报告无用)
  • e-mail 验证(相同,只是想象一下)

所以我的问题是:

  1. 是否有一种优雅、常用的策略来保护此类端点?
  2. 在实践中,像验证数据结构这样的轻量级解决方案就足够了吗?
  3. 这一切有必要吗?毕竟我不会在应用程序中使用横幅广告我的错误处理 API 端点...

最佳答案

我见过它以三种不同的方式完成……

  1. 假设您使用 OAuth 2 来保护您的 API。站起来两个错误端点。

    • 对于登录用户,如果发生错误,你会点击/error 端点,并使用现有的进行身份验证用户身份验证 token 。
    • 对于访问者,您可以公开一个/clientError(或以对您有意义的方式命名)采用客户端应用程序的 client_credentials token 。
  2. 使用范围内的 api key 保护/error 端点仅访问错误端点。

    • 此 key 将特定于客户端并将在 header 中传递。
  3. 使用第 3 方工具,例如 Raygun.io ,或任何 APM 工具,例如 New Relic .

关于rest - 如何保护 API 端点以报告客户端 JS 错误以防止垃圾邮件(如果有必要)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55240505/

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