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 技术交流群,感兴趣的欢迎关注。
    另外,一如即往的是,全网的所有收益,都会捐赠给希望工程,坚持靠爱与兴趣发电。
相关推荐
测试杂货铺1 分钟前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
王佑辉2 分钟前
【redis】redis缓存和数据库保证一致性的方案
redis·面试
真忒修斯之船8 分钟前
大模型分布式训练并行技术(三)流水线并行
面试·llm·aigc
ZL不懂前端29 分钟前
Content Security Policy (CSP)
前端·javascript·面试
杜杜的man39 分钟前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang
幼儿园老大*39 分钟前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go
llllinuuu41 分钟前
Go语言结构体、方法与接口
开发语言·后端·golang
cookies_s_s42 分钟前
Golang--协程和管道
开发语言·后端·golang
为什么这亚子44 分钟前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
想进大厂的小王1 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构