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

问题描述 投票:1回答:1

我正在使用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(显然无法用于错误报告)
  • 电子邮件验证(同样,想象一下)

所以我的问题是:

  1. 是否有一种优雅的,常用的策略来保护这样的端点?
  2. 在实践中,验证数据结构的轻量级解决方案是否足够?
  3. 这一切都是必要的吗?毕竟我不会在应用程序中用横幅广告我的错误处理API端点...
rest security spam-prevention error-reporting
1个回答
0
投票

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

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