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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (17)

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

因此,假设我们有一个捕获错误的JS客户端应用程序和一个REST端点/errors,该端点接受一个JSON对象,其中包含有关所发生事件的相关信息。客户端应用程序将数据发送到服务器,它存储在数据库(或其他)中,对吧?

现在我有一个开放的(如允许未经身份验证的创建/编写操作)API端点,只需要一点点知识的每个人都可以轻松地发送垃圾邮件。

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

在诸如“ 附加到数据库的开放REST API - 什么阻止不良行为者向我的数据库发送垃圾邮件? ”或“ 在用户验证之前安全休息服务 ”这样的问题中,有以下建议:

  • 访问配额(但我不想保存IP或任何东西来识别客户端)
  • Captchas(显然无法用于错误报告)
  • 电子邮件验证(同样,想象一下)

所以我的问题是:

  1. 是否有一种更好的,常用的策略来保护这样的端点?
  2. 在实践中,验证数据结构的轻量级解决方案是否足够?
  3. 这一切都是必要的吗?毕竟我不会在应用程序中用横幅广告我的错误处理API端点...
提问于
用户回答回答于

我已经看到它做了三种不同的方式......

  1. 假设您使用OAuth 2来保护您的API。站起来两个错误端点。
    • 对于已登录的用户,如果发生错误,您将访问/ error端点,并使用现有的用户身份验证令牌进行身份验证。
    • 对于访问者,您可以公开/ clientError(或以对您有意义的方式命名)端点,该端点为客户端应用程序获取client_credentials标记。
  2. 使用api密钥保护/ error端点,该密钥只​​能访问错误端点。
    • 此密钥将特定于客户端,并将在标头中传递。
  3. 使用第三方工具(如Raygun.io)或任何APM工具(如New Relic)

扫码关注云+社区

领取腾讯云代金券