如何将 reCaptcha 集成到基于 Spring Boot 的 Java 应用程序中?

问题描述

我需要实现一个(不可见)的 reCaptcha 以防止机器人攻击等。因此,用户不会像在标准 reCaptcha 中那样输入数据。相反,一个不可见的 reCaptcha 将在后端集成到我的 Spring Boot 应用程序中。

那么,如何将这样的机制集成到项目(Spring Boot 应用程序)中?提前致谢。

解决方法

首先,如果您想要每个 IP 等的节流机制,这不是验证码, 这就是您要找的:

spring-security-block-brute-force

根据定义,recaptcha 是一种阻止机器人滥用网站前端影响后端的方法,

recaptcha definition by google

为此,我会推荐 google recaptcha v3,它是完全静音的(除了网站上的小徽标),没有选择汽车等的图像......它的工作方式是从收集行为数据页面上的用户(非常适合 React 等单页应用),

在后端预先存储您的网站私钥(发布和私钥由谷歌按域名提供)

在用户发送登录/注册或任何其他请求后,您可以发送用户验证码令牌,

然后您可以将令牌提供给 google 并获得所述用户的分数(在 0-1 之间,越高越好)您还可以获得验证码操作以确保操作与调用的 api 相关,这就是全部spring 不在前端,从那里您可以决定在访问数据库以获取用户数据之前停止注册/登录过程并因此快速停止机器人尝试...