V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lixuda
V2EX  ›  问与答

如果不用验证码,表单提交页面能否尽量避免机器刷?

  •  
  •   lixuda · 2019-12-05 10:07:05 +08:00 · 3074 次点击
    这是一个创建于 1810 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位大神,求教下 有 1 个表单页面(非手机端),为了避免被机器人刷单,又不想用验证码,有什么好的办法吗? 微信,手机号码验证除外,谢谢大家

    第 1 条附言  ·  2019-12-05 13:04:44 +08:00
    感谢大家,只是小站,不想弄太复杂,正常用户不会太多发布内容,所以就没有限制。但是现在发现大量机器人会扫描,然后纯发布广告或者不良信息,我改了页面,没有多久还会来发布
    16 条回复    2019-12-13 11:53:17 +08:00
    izoabr
        1
    izoabr  
       2019-12-05 10:09:02 +08:00
    这东西道高一尺魔高一丈
    CSRF
    限制但 IP POST 频率
    计算题
    选图
    拼图
    之类的吧
    locoz
        2
    locoz  
       2019-12-05 10:10:18 +08:00
    有能锁死用户的唯一识别码(比如账号)就行,结合风控可以做到不用验证码,但是你又说微信、手机号码验证除外。
    locoz
        3
    locoz  
       2019-12-05 10:13:23 +08:00
    没有的话就用那种无感验证(比如 reCAPTCHAv3 那种后台检测、打分的)吧,能在尽量不出验证码的情况下提高刷的门槛。
    manami
        4
    manami  
       2019-12-05 10:13:50 +08:00
    js 写个定时器,限制一段时间内提交操作
    rogwan
        5
    rogwan  
       2019-12-05 10:17:29 +08:00 via iPhone
    一般情况,限制下 IP 频率就可以了。价值非常高的 post,你肯定是要有账号系统的吧
    imdong
        6
    imdong  
       2019-12-05 10:19:07 +08:00   ❤️ 1
    用客户端挖矿即可。
    Torpedo
        7
    Torpedo  
       2019-12-05 10:28:18 +08:00
    往客户端的方向走吧。
    客户端接口大部分都是有 token 的。客户端代码重混淆,或者会用 c++。
    那么同理,js 也可以和后端约定基于 token 的加密算法。
    混淆的话,uglify 当然太简单了,可以使用 javascript-obfuscator
    一定程度可以防止
    Yoefs
        8
    Yoefs  
       2019-12-05 10:28:57 +08:00
    限制同一 ip 在指定时间内重复提交
    yzkcy
        9
    yzkcy  
       2019-12-05 10:30:12 +08:00
    @manami 前端限制没用。
    wangkun025
        10
    wangkun025  
       2019-12-05 10:31:48 +08:00
    cloudflare 欢迎你
    berumotto
        11
    berumotto  
       2019-12-05 10:37:30 +08:00   ❤️ 1
    我们应该换个思路,表单页面只允许机器刷,判断如果是人为提交就阻止他。这样人们就会想尽办法做出模拟人为提交的方式,从而反向达到防刷的效果~(逃
    hostpai
        12
    hostpai  
       2019-12-05 11:17:32 +08:00
    随便什么验证码,都能机器刷
    ClarkAbe
        13
    ClarkAbe  
       2019-12-05 11:41:15 +08:00 via Android
    让客户端计算随机指定前缀的哈希
    340244120w
        14
    340244120w  
       2019-12-05 13:27:43 +08:00 via iPhone
    注册的时候用手机号或者微信绑定呗。加上一次性表单 token,短时间提交次数超过前端限制的,直接封号。
    游客也能提交表单的话,验证码啥的这类简单的都嫌麻烦,要防止估计做梦都想不出来。
    至于说绑定 ip 的,了解下国内有多少公网 ip 吧。
    lands
        15
    lands  
       2019-12-05 18:04:16 +08:00
    @manami 机器人都是直接走接口的
    tjx20114
        16
    tjx20114  
       2019-12-13 11:53:17 +08:00
    从机器人的角度考虑,
    1. 能走尽量走接口
    2. 使用不同 ip 来提交不同表单
    防刷思路:
    1. cookies 验证,记录 refer 等,验证不通过就跳转回主页,防止机器人直接访问接口,应该会过滤掉大量直接扫描接口提交的机器人
    2. 找到机器人提交的表单的特征, 如 文本内容里面有广告? 有手机号?等过滤
    完全避免:
    1. 强验证码
    2. 登录
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1104 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:43 · PVG 06:43 · LAX 14:43 · JFK 17:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.