V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Reign
V2EX  ›  程序员

怎样尽可能限制用户在我的网站上只能注册一个账号?

  •  
  •   Reign · 2018-06-11 08:53:30 +08:00 · 9144 次点击
    这是一个创建于 2145 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为是下载资源站,每个账号下载的次数有限,为了防止同一用户同时注册多个账号来薅网站资源,有哪些方法限制只能注册一次?不可能做到绝对,只是尽可能减少注册次数,我能想到的:

    1. 只能第三方登录,但是 QQ 登录或者微博登录还要审核,非常麻烦
    2. 写一个类似于 evercookie 的 js,把 Local storage, IndexedDB, Session Storage 还有 cookie 都写满来标注此客户端,但是,用户一清理数据,又完了
    3. 用 fingerprint.js 来标注客户端,但是我始终觉得这个 js 误伤率比较高,感觉会存在很多设备相同的 fingerprint 而误杀一些客户端,不太靠谱

    求聪明的 V2er 们想想

    78 条回复    2018-06-12 09:57:01 +08:00
    yulitian888
        1
    yulitian888  
       2018-06-11 08:56:48 +08:00
    当真要做的话,学银行,柜面发放 U 盾,一劳永逸。
    或者每次登陆都要求短信验证码,麻烦点但是基本靠谱
    一般的话,微信登陆就足够挡住多数情况了
    zacharyjia
        2
    zacharyjia  
       2018-06-11 08:57:10 +08:00
    手机号验证呢?门槛会高很多吧
    Reign
        3
    Reign  
    OP
       2018-06-11 08:57:33 +08:00
    @yulitian888 U 盾太不现实,微信登录还要审核,搞得好麻烦
    Reign
        4
    Reign  
    OP
       2018-06-11 08:58:17 +08:00
    @zacharyjia 全球性的用户,不是大陆用户,手机号验证也不太现实
    airyland
        5
    airyland  
       2018-06-11 09:00:12 +08:00
    前端终究容易绕过,微信授权登录+绑定手机+ip 限制。
    VShawn
        6
    VShawn  
       2018-06-11 09:01:41 +08:00
    收费注册呗
    imdong
        7
    imdong  
       2018-06-11 09:01:47 +08:00
    嗯,参考 CSDN 的注册套路,反正我是被卡住了...
    使用微信同号的手机验证码。
    chanssl
        8
    chanssl  
       2018-06-11 09:03:07 +08:00
    IP 限制吧。
    另外把一些常见的十分钟邮箱之类的加入黑名单
    daigouspy
        9
    daigouspy  
       2018-06-11 09:03:52 +08:00 via Android
    @Reign 怎么不可以?有全球性的短信平台啊!
    Reign
        10
    Reign  
    OP
       2018-06-11 09:05:46 +08:00
    @chanssl ip 代理一搜一大堆,十分钟邮箱一搜也一大堆,ban 不完
    mengdisheng
        11
    mengdisheng  
       2018-06-11 09:06:48 +08:00
    当然是手机验证。。。全球也是这样 因为我就是这么干的。。不要有问题上来就主观臆断
    opengps
        12
    opengps  
       2018-06-11 09:07:32 +08:00
    借助微信实现吧,起码要想养一堆微信必然得需要多个手机,手机微信一退,电脑版就得退出。
    不过这个招数可以手动交替登录不同微信号突破(能做到避免机器人操作就差不多了)
    KingPL
        13
    KingPL  
       2018-06-11 09:11:22 +08:00   ❤️ 2
    限制的 成本太高才是楼主纠结的事情嘛....
    zjsxwc
        14
    zjsxwc  
       2018-06-11 09:15:34 +08:00
    验证手机短信注册不是现在国家都要求的吗?
    jmc891205
        15
    jmc891205  
       2018-06-11 09:15:37 +08:00 via iPhone
    免费注册 收费下载
    wormcy
        16
    wormcy  
       2018-06-11 09:17:51 +08:00
    单个 ip 下载超过一定量之后限速
    wly19960911
        17
    wly19960911  
       2018-06-11 09:18:01 +08:00
    帆布指纹识别( CANVAS FINGERPRINTING )

    前段时间看见的,好像哪个 V2 发帖发现通过清理各种数据仍然被记载了身份信息,同样的,好像最后发现是基于 canvas 的识别。

    先验证这个,然后辅助验证身份,试试可行不?毕竟有误伤率。
    wly19960911
        18
    wly19960911  
       2018-06-11 09:18:40 +08:00
    @wly19960911 #17 哦,我搞错了,看到了楼主用了,跑了(
    hackshen
        19
    hackshen  
       2018-06-11 09:19:50 +08:00
    只有绑定手机才可以下载
    lmmortal
        20
    lmmortal  
       2018-06-11 09:19:54 +08:00 via iPhone
    同一个 IP+所谓指纹在指定时间内只能下载 xx 个资源,这不就跟那种网赚网盘一样吗
    ccbikai
        21
    ccbikai  
       2018-06-11 09:20:22 +08:00 via iPhone
    微信授权,手机登录。 可以加强难度
    SorcererXW
        22
    SorcererXW  
       2018-06-11 09:26:48 +08:00
    建议根据 ip 来做, 即使用户可以很容易地更换 ip, 但大多数用户不会, 所以影响不大的
    如果用其他方式, 为了下载一个资源, 还得交出手机号或者微信, 侵犯隐私了, 宁愿不下载
    SoulGem
        23
    SoulGem  
       2018-06-11 09:37:30 +08:00 via iPhone
    想做到 100%是不可能的,只能说想看愿意投入多少成本。微信登录基本上已经能避免一大堆刷小号的了,因为薅羊毛的想要搞那么多微信号也不容易。说到底我觉得为什么不在下载行为上做验证,比如同一天某个 IP 大量下载完配额之后又用第二个号继续下载。
    sonyxperia
        24
    sonyxperia  
       2018-06-11 09:37:40 +08:00
    姓名、手机、身份证号:三要素认证
    微信登录
    janus77
        25
    janus77  
       2018-06-11 09:43:53 +08:00 via Android
    既然是下载站,那就等级积分门槛,第一层就可以,然后是下载时延迟 20 秒分配线路,这也是很多下载站常用的手法,防止非人工刷。至于人工刷,那就 ip 控制吧,不用太严就行
    zarte
        26
    zarte  
       2018-06-11 09:51:36 +08:00
    邮箱验证吧,可以限制一定数量。
    likuku
        27
    likuku  
       2018-06-11 09:52:37 +08:00
    直接收注册费,不缴费不给注册,收费机制可参考域名购买。
    ioth
        28
    ioth  
       2018-06-11 09:55:52 +08:00
    不收费没意义。
    jennifertxwoodma
        29
    jennifertxwoodma  
       2018-06-11 09:57:59 +08:00
    手机号作为用户名,然后验证,然后设置 unique 一下
    a7a2
        30
    a7a2  
       2018-06-11 10:02:04 +08:00
    @Reign 全球也是可以发短信的无论是 aws、aliyun 还是其他短信接口都是可以做到全球发的
    mydns
        31
    mydns  
       2018-06-11 10:02:31 +08:00
    手机验证注册
    mooo
        32
    mooo  
       2018-06-11 10:06:21 +08:00
    手机认证。微信 facebook 二选一
    kutata
        33
    kutata  
       2018-06-11 10:10:42 +08:00
    @VShawn 666
    opengps
        36
    opengps  
       2018-06-11 10:26:50 +08:00
    @wormcy 你让那些二级三级运营商网络怎么活,举个栗子:某城宽带券市出口带宽不到 10G,几百万人口共享几万 ip
    yxwzaxns
        37
    yxwzaxns  
       2018-06-11 10:29:47 +08:00 via iPhone
    很简单,手持身份证拍照(⁎⁍̴̛ᴗ⁍̴̛⁎)
    linda102
        38
    linda102  
       2018-06-11 10:31:01 +08:00
    免费注册,收费下载
    Raymon111111
        39
    Raymon111111  
       2018-06-11 10:33:46 +08:00
    绑定手机
    polymerdg
        40
    polymerdg  
       2018-06-11 10:42:41 +08:00
    来个低成本的
    绑定微信,类似 server 酱 发送验证码
    zj299792458
        41
    zj299792458  
       2018-06-11 10:54:42 +08:00 via iPhone   ❤️ 1
    注册时上传裸持身份证照片绑定
    wormcy
        42
    wormcy  
       2018-06-11 11:11:59 +08:00   ❤️ 1
    @opengps 并没有到没法活的程度吧,同城共享同一个 ip 的用户同时在一个规模可能不大的下载站下载文件,这个概率本身就很低。限速又不是不能下,对用户来说限速到 100k 还是 50k,影响并不会很大。
    wormcy
        43
    wormcy  
       2018-06-11 11:14:22 +08:00
    @opengps 另外可以加上时间限制,几个小时之后下载量重新统计
    opengps
        44
    opengps  
       2018-06-11 11:16:58 +08:00
    各种限制都有局限性,组合使用找个损失尽量低的

    方法似乎就这么几个:
    实名认证
    银行卡绑定
    微信扫码绑定
    短信验证码
    邮箱验证码
    ip
    cookie
    自己研发特定客户端
    jarnanchen
        45
    jarnanchen  
       2018-06-11 11:22:38 +08:00
    可以学学 B 站,搞个答题考试
    doubleflower
        46
    doubleflower  
       2018-06-11 11:33:19 +08:00
    邮箱注册,只认大公司的邮箱如 qq,gmail 等
    现在注册个邮箱也是要手机号了吧,间接相当于你用手机号验证了
    22too
        47
    22too  
       2018-06-11 11:44:12 +08:00
    语音验证码。转接成本较高。
    xomix
        48
    xomix  
       2018-06-11 12:05:06 +08:00
    要知道 S1 注册新号 10 元 RMB 不退,还不是一大堆赵小姐,还发展成固定收入了都………………
    所以你要唯一性方法就那么多,但是效果也就那样,你看看要花 RMB 的别人不是也一样花钱嘛。
    whileFalse
        49
    whileFalse  
       2018-06-11 12:11:27 +08:00
    @wly19960911 mac 同尺寸同浏览器这指纹一样。
    dallaslu
        50
    dallaslu  
       2018-06-11 12:18:40 +08:00
    只能支付宝登录,限信用分 700 以上才能使用
    Felldeadbird
        51
    Felldeadbird  
       2018-06-11 13:00:28 +08:00
    既然全球性,直接上指纹啊。之前 V2 有人发帖子说过这个。我记得那篇教程说到,不论是否隐身窗口,得到的指纹都是唯一的。
    winglight2016
        52
    winglight2016  
       2018-06-11 13:17:27 +08:00
    楼主的问题,别的下载网站也有同样需求,你找一下同类网站参考一下不就知道了?我发现 prefiles 这个网站是最会折腾免费用户的,你可以了解一下
    9684xtpa
        53
    9684xtpa  
       2018-06-11 13:54:40 +08:00
    @doubleflower #46 赞同
    uptime
        54
    uptime  
       2018-06-11 13:55:54 +08:00
    把你 #4 「全球用户」加上 append 上,这里 N 多人是不看回复补充的,甚至有 N 多人只看标题不看内容的,也有 N 多的人与语文老师是有仇恨的……
    qinxi
        55
    qinxi  
       2018-06-11 14:07:23 +08:00
    @Felldeadbird 看来你没测试过.隐身模式和正常模式的值是不一样的.但是隐身模式下确实是不变的.如果 F12 模拟手机的话 换一个机型指纹都不一样.
    Ginray
        56
    Ginray  
       2018-06-11 14:41:29 +08:00
    歪个楼,可以参考下 warframe 的注册机制,我是不相信有人愿意再去注册一个账号的。。。
    Gothack
        57
    Gothack  
       2018-06-11 14:50:13 +08:00
    同一个 IP 短时间内禁止切换账号?
    johnidy
        58
    johnidy  
       2018-06-11 15:28:58 +08:00
    机器硬件配置+os user name 来鉴权
    wekw
        59
    wekw  
       2018-06-11 15:45:06 +08:00
    没用的,就算是刷脸也可以用自己亲人的脸
    jiangzhuo
        60
    jiangzhuo  
       2018-06-11 17:06:35 +08:00
    成本最小的就是第三方登录,接芝麻信用吧
    psklf
        61
    psklf  
       2018-06-11 17:16:16 +08:00
    剑走偏锋 邀请注册
    flyingfz
        62
    flyingfz  
       2018-06-11 17:27:12 +08:00
    出客户端吧。
    在客户端里 做唯一用户的验证 ,相对比较容易。没浏览器 那么多限制。
    bk201
        63
    bk201  
       2018-06-11 18:43:28 +08:00
    通过支付接口,比如付款 1 分钱注册,获取支付用户信息。
    jizhu
        64
    jizhu  
       2018-06-11 18:55:30 +08:00
    实名认证,对接芝麻信用,
    17 开头的号码限制注册,
    一个手机号码只能注册一个,
    只接受手机号码注册,并且需要用户自己发短信给你,
    腾讯就是这样做的,因为一些小号和卡商的号只能接收,不能发短信给 106 的号码。
    暂时想到这么多,其他的楼上说了。
    yankebupt
        65
    yankebupt  
       2018-06-11 19:02:47 +08:00
    使用以太币之类的附加条件智能合约,让用户交 5 块到 50 块人民币扣上个半年,到期合约自动返还。如果检测到大量注册就触发处罚条件,扣他个 3-5 年。智能合约应该可以写明无论如何吞不掉钱(不会被你拿到),但是你应该可以决定押金数量。
    仅限于你是真的想限制 leecher 数量。如果你只是想绑定对方的 ID 身份利于收集兴趣便于和毒瘤合作推送广告或诈骗,手机号之类传统方法还是不二法门。
    fengye1996
        66
    fengye1996  
       2018-06-11 19:41:16 +08:00 via Android
    什么资源站,这么牛逼搞付费下载好了。
    chuhemiao
        67
    chuhemiao  
       2018-06-11 20:08:30 +08:00
    手持身份证验证,:D
    weakish
        68
    weakish  
       2018-06-11 20:12:48 +08:00
    @chuhemiao 严格来说无解。个别人有多张身份证。
    wunonglin
        69
    wunonglin  
       2018-06-11 22:37:25 +08:00
    @Reign
    手机号(全球都一样,找个短信平台服务商就行了)
    邮箱
    身份证
    手持身份证照


    其实就看你平台有什么东西是有多好的,让用户拼命也要注册你的平台才对。微信也避免不了有很多小号、刷号的
    ety001
        70
    ety001  
       2018-06-11 22:59:40 +08:00
    收费是最好的方式,没有之一。如果担心有信誉问题,参考 65L。
    meteor2013
        71
    meteor2013  
       2018-06-11 23:05:06 +08:00
    @Felldeadbird 怎么个上指纹啊?容易实现不?
    F1024
        72
    F1024  
       2018-06-11 23:12:27 +08:00
    临时邮箱的 id 屏蔽一波
    Bryan0Z
        73
    Bryan0Z  
       2018-06-11 23:28:28 +08:00 via Android
    首选验证手机号啊,这个门槛相当高了,用户还方便。国外这种一般只会要你邮箱,送羊毛之前一般会让你预充个 1 刀,或者填信用卡信息,然后记录你的支付方式,判断是不是同一个用户重复薅羊毛。
    这种事本来就不应该通过技术手段解决。
    Don9
        74
    Don9  
       2018-06-11 23:52:38 +08:00 via Android
    说实话手机验证码的门槛比较低,网络上接码平台太多了,微信登陆比较靠谱,腾讯在微信这方面做得挺好的,还有限制 ip 也是一个考虑的方向。
    akira
        75
    akira  
       2018-06-12 00:27:00 +08:00
    所有的方案 最终就是成本的问题.
    弄一堆东西让别人想办法花钱跳过 还不如直接收费 简单直接粗暴
    feverzsj
        76
    feverzsj  
       2018-06-12 00:29:26 +08:00
    参考裸条
    jss
        77
    jss  
       2018-06-12 08:16:42 +08:00 via iPhone
    @Reign 注册验证短信啊,国际短信一条才多少钱…
    cncqw
        78
    cncqw  
       2018-06-12 09:57:01 +08:00
    充钱吧,会员制度
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5964 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:16 · PVG 10:16 · LAX 19:16 · JFK 22:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.