【问题标题】:How to fetch IP of end users in recaptcha [closed]如何在 recaptcha 中获取最终用户的 IP [关闭]
【发布时间】:2021-03-07 11:03:39
【问题描述】:

我正在开发 Angular 5,我对此并不陌生。我的要求是获取最终用户的 IP 地址。我想存储那些分数小于 0.5(很可能是 bot)的用户的 IP 地址,以便我可以将低分用户的 IP 列入黑名单。

当我验证网站 recaptcha 时,我收到的 json 包含:

{
  "action": "login",
  "challenge_ts": "2020-11-24T06:48:33Z",
  "hostname": "localhost",
  "score": 0.9
}

请告诉我如何获取该用户的 IP。任何帮助将不胜感激。

【问题讨论】:

    标签: angular angular5 recaptcha recaptcha-v3


    【解决方案1】:

    Recaptcha 可能不提供用户的 IP。但是有一种方法可以验证令牌服务器端。在此处阅读更多内容:“验证用户的响应”https://developers.google.com/recaptcha/docs/verify。 您可以使用它来将“bot”的 IP 地址列入黑名单:

    在前端:

    1. 前端在 recaptcha 回调中接收令牌。
    2. 前端将此连同您要发送的其他数据一起发送到您的服务器。

    在后端:

    1. 我们可以获取服务器上的用户ip。我们从请求数据中获得了令牌。我们还有 recaptcha 密钥(共享密钥)。
    2. 使用第一步收集的数据向https://www.google.com/recaptcha/api/siteverify 发送发布请求。检查文档中的 POST 正文格式(上面提到的链接)
    3. 如果请求的响应返回success=false,则将该IP列入黑名单。 else 继续正常执行其他数据。

    请注意,此过程将在生成 recaptcha 令牌后的两分钟内执行。因此,您可以在生成令牌后直接向后端发送请求,而不是等到用户单击提交按钮。

    这是一种将“机器人”IP 列入黑名单的方法。

    【讨论】:

      猜你喜欢
      • 2016-10-25
      • 2013-09-21
      • 2019-12-17
      • 2019-09-23
      • 2016-02-01
      • 1970-01-01
      • 2015-03-18
      • 2014-02-25
      • 1970-01-01
      相关资源
      最近更新 更多