2024-4-17 群讨论:防刷机制

以下来自本人拉的一个关于 Java 技术的讨论群。关注公众号:hashcon,私信进群拉你

防刷子机制

主要分为两种场景:

  1. 针对未登录或者未注册用户,对于注册,各种验证码等类似的接口进行防刷机制,同时尽量减少对于用户的打扰。
  2. 针对已经登陆的用户
    1. 参与活动设置必要的门槛:比如最近交易量。
    2. 引入 MFA 之后,限制用户只能通过绑定的 MFA 的设备参与活动。

针对 2 其实主要是从业务的角度考虑,MFA 机制不仅是安全性的保证,MFA 更是利于验证用户设备有效,从而可以使用设备做一些业务的限制。

针对 1,可以使用以下的机制减少验证码对于用户的打扰:

  1. 使用类似于 Google reCAPTCHA Enterprise(reCAPTCHA v3)或者国内可以用 hCAPTCHA Enterprise 服务,针对敏感接口,例如注册,短信 OTP 接口等等接入,每次请求会带上一个 Google Recaptcha Enterprise 的评分:
    1. reCAPTCHA v3 在用户浏览网站时连续地评估用户行为。这包括用户与页面的交互方式(如鼠标移动、滚动、点击等)、设备和浏览器的信息。它还可能分析用户在整个会话中的行为,包括访问多个页面的顺序和速度。
    2. 基于这些行为分析,reCAPTCHA v3 为每个用户请求分配一个分数,范围从 0.0 到 1.0。分数越接近 1.0 表示系统越认为该行为来自真实人类,分数越低则越可能是由自动化脚本或机器人产生。这里是一个分数分布的例子:
  2. 你的后台根据这个分数(笔者这里是针对所有低于 0.8 的请求),请求响应是需要验证码才能继续。这里的验证码实现方案就很多很多了,笔者就不赘述了。
  3. 也就是,对于大部分用户,注册的时候,其实连验证码都不需要输入。对于评分比较低的用户才去让用户接受挑战(challenge),或者是输入验证码,或者是其他挑战方式。

为何不建议使用 ip + 设备封禁或者限流(限流并不是禁止访问,而是跳转或者弹出验证码)?相较于上面的手段,对于用户的打扰比较多。同时 ip 和设备比较容易伪造(ip 可以通过 vpn,设备可以模拟等等),并且,现在的浏览器的发展趋势是 user-agent 趋于统一,暴露的信息越来越少:

developers.google.com/privacy-san...

个人简介:个人业余研究了 AI LLM 微调与 RAG,目前成果是微调了三个模型:

  1. 一个模型是基于 whisper 模型的微调,使用我原来做的精翻的视频按照语句段落切分的片段,并尝试按照方言类别,以及技术类别分别尝试微调的成果。用于视频字幕识别。
  2. 一个模型是基于 Mistral Large 的模型的微调,识别提取视频课件的片段,辅以实际的课件文字进行识别微调。用于识别课件的片段。
  3. 最后一个模型是基于 Claude 3 的模型微调,使用我之前制作的翻译字幕,与 AWS、Go 社区、CNCF 生态里面的官方英文文档以及中文文档作为语料,按照内容段交叉拆分,进行微调,用于字幕翻译。
    目前,准确率已经非常高了。大家如果有想要我制作的视频,欢迎关注留言。
    本人也是开源代码爱好者,贡献过很多项目的源码(Mycat 和 Java JFRUnit 的核心贡献者,贡献过 OpenJDK,Spring,Spring Cloud,Apache Bookkeeper,Apache RocketMQ,Ribbon,Lettuce、 SocketIO、Longchain4j 等项目 ),同时也是深度技术迷,编写过很多硬核的原理分析系列(JVM)。本人也有一个 Java 技术交流群,感兴趣的欢迎关注。
    另外,一如即往的是,全网的所有收益,都会捐赠给希望工程,坚持靠爱与兴趣发电。
相关推荐
安的列斯凯奇5 小时前
SpringBoot篇 单元测试 理论篇
spring boot·后端·单元测试
架构文摘JGWZ6 小时前
FastJson很快,有什么用?
后端·学习
BinaryBardC6 小时前
Swift语言的网络编程
开发语言·后端·golang
邓熙榆6 小时前
Haskell语言的正则表达式
开发语言·后端·golang
专职9 小时前
spring boot中实现手动分页
java·spring boot·后端
Ciderw9 小时前
Go中的三种锁
开发语言·c++·后端·golang·互斥锁·
m0_7482463510 小时前
SpringBoot返回文件让前端下载的几种方式
前端·spring boot·后端
m0_7482304410 小时前
创建一个Spring Boot项目
java·spring boot·后端
卿着飞翔10 小时前
Java面试题2025-Mysql
java·spring boot·后端
C++小厨神10 小时前
C#语言的学习路线
开发语言·后端·golang