【问题标题】:Is it possible to protect Get Requests in Spring Boot MVC with Recaptcha (inside the Spring Boot Application)是否可以使用 Recaptcha 保护 Spring Boot MVC 中的获取请求(在 Spring Boot 应用程序内)
【发布时间】:2021-05-06 22:55:32
【问题描述】:

假设当您向此 url 发送请求时:...?query=something&filter=another_thing,我正在返回一个带有模型属性的网页,比如说model.addAttribute('result', resultList),然后只是 for 循环结果并打印值。 (模板解析器可以是 jsp 或 thymeleaf,但是没有模型样式就无法加载 resultList - 我的意思是没有 ajax 请求 - )

我想做什么:

  • 在加载结果(或加载页面)之前,我只想先加载 google recaptcha.js,然后
  • recaptcha 将返回一个令牌,
  • 然后我将通过ajax请求将令牌发送到后端。
  • 毕竟如果request不是bot,我会打印resultList

这个要求是否可以在 Spring Boot 应用程序本身内部实现?

注意:无论如何我都找不到这样做。我只是认为我可以拦截原始的获取 url 然后重定向到另一个页面,这个页面将加载 recaptcha 并将令牌发送到我的后端。如果不是机器人,则重定向到原始获取 url。但是我不知道如何保留原始请求

【问题讨论】:

    标签: spring spring-boot spring-mvc recaptcha


    【解决方案1】:

    您的构图略有错误,这可能会产生重大影响。

    发出请求时,您要确保该请求已获得授权,然后再处理 它。

    这就是recaptcha的用武之地。 为了防止未经授权的访问,请查看 spring-security 和 recaptcha。

    一旦获得足够的身份验证,您的请求就会进入您的控制器,然后您就可以提供页面了。

    (当然,您可以研究它动态地执行它,但这会有点困难)

    【讨论】:

    • 感谢您的回答,但当我只有请求时,我无法弄清楚如何获取 google recaptcha 令牌。 (我应该以某种方式在获取请求中阻止用户,并且在显示内容之前,我必须从谷歌服务器获取 recaptcha 令牌
    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2019-08-01
    • 2019-05-04
    • 2018-02-22
    • 2023-03-16
    • 2020-01-08
    相关资源
    最近更新 更多