请教防止恶意注册的方法,急!!! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容 #Wrapper { background-color: #e2e2e2; background-image: url("/static/img/shadow_light.png"), url("//cdn.v2ex.com/assets/bgs/circuit.png"); background-repeat: repeat-x, repeat-x; } #Wrapper.Night { background-color: #1f2e3d; background-image: url("/static/img/shadow.png"), url("//cdn.v2ex.com/assets/bgs/circuit_night.png"); background-repeat: repeat-x, repeat-x; background-size: 20px 20px, 162.5px 162.5px; }
yzn
V2EX    程序员

请教防止恶意注册的方法,急!!!

  •  1
     
  •   yzn 2015-07-07 11:04:58 +08:00 13660 次点击
    这是一个创建于 3822 天前的主题,其中的信息可能已经有所发展或是发生改变。
    发现网站有恶意的注册,可以基本肯定不是人手动恶意注册。

    采取过的手段:
    1、修改注册页面的文件名。(可保短暂的安宁)
    2、更换了N个图片验证码、计算形式的验证码、也都用了,也只能短暂平静。
    3、利用cookies、session记录IP,限制一个IP一天只能注册一次,我自己测试完全可以限制住,第一次注册可以正常完成,第二次就注册不了,但不知道为什么这限制对于这次的恶意注册一个点用都没

    我也想过会不会是直接SQL的注入,但从我的处理方法中可以得出结论,必须要通过那个页面才能注册的,而且我这边在代码中直接限制谁都不能注册,结果也可以限制住。

    希望高手们帮忙分析下这问题是怎么回事,要怎么样解决下,折腾了两天了,还是没弄好,着急上火了,大家帮帮忙,跪谢了!
    52 条回复    2015-07-08 23:51:11 +08:00
    foccy
        1
    foccy  
       2015-07-07 11:21:56 +08:00
    利用cookies、session记录IP对于恶意攻击应该没用吧?客户端不携带session id就可以失效。我觉得英爱记录在文件,或者数据库或者其他类似的地方,而不是session。
    jnduan
        2
    jnduan  
       2015-07-07 11:27:43 +08:00
    人家是挂着代理注册的吧?

    解决这个问题估计必然会导致注册流程体验的下降

    1.更复杂的验证码,增加ocr的成本
    2.注册验证机制,例如发送激活邮件
    3.短信验证码
    等等
    wkdhf233
        3
    wkdhf233  
       2015-07-07 11:30:05 +08:00
    短信验证码
    惹急了上邀请码,邀请码需要加你QQ要
    tini22
        4
    tini22  
       2015-07-07 11:31:30 +08:00
    中文验证码 + 扭曲变形 + 文字粘连
    FastMem
        5
    FastMem  
       2015-07-07 11:39:58 +08:00
    目前是邮箱验证加邀请码
    wy315700
        6
    wy315700  
       2015-07-07 11:40:45 +08:00 via Android
    手机验证码
    sweat89
        7
    sweat89  
       2015-07-07 11:45:21 +08:00
    限制一个IP一天只能注册一次
    你在逗我呢
    shiznet
        8
    shiznet  
       2015-07-07 11:49:42 +08:00
    限IP会误伤,有些办公网公用一个出口IP。

    增加下行短信验证,这样会增加短信的费用,但是可以防止机器批量注册。短信验证时最好配合验证码,否则下行短信接口可能会被人用来做短信炸弹。

    对于批量注册,id通常都是有规律的,可以查看日志,对于短时间内集中注册的有规律的用户名可以监控起来。
    yzn
        9
    yzn  
    OP
       2015-07-07 11:50:10 +08:00
    嗯,但目前还没到那种地步,希望可以多积累一些用户。
    yzn
        10
    yzn  
    OP
       2015-07-07 11:50:39 +08:00
    @wkdhf233 嗯,但目前还没到那种地步,希望可以多积累一些用户。
    wizardoz
        11
    wizardoz  
       2015-07-07 11:53:07 +08:00
    不要从技术的角度限制,IP限制更是不靠谱。
    用邮箱注册或者手机号注册最好,业务上说也是合情合理。
    yzn
        12
    yzn  
    OP
       2015-07-07 11:53:27 +08:00
    @shiznet 注册限制太多,影响网站壮大发展与用户体验。就是想现在有没有什么工具软件之类,像防水墙这种。不过防水墙太水了,也没有起到相应作用。
    OpooPages
        13
    OpooPages  
       2015-07-07 12:28:24 +08:00 via Android
    懒惰安全的做法,是不是可以直接使用第三方帐号接入?
    比如github oauth接入
    laiyingdong
        14
    laiyingdong  
       2015-07-07 12:39:20 +08:00
    限IP不好 据说现在有 “ADSL VPS” 估计就是这么用的

    我觉得可以选择性的使用 邮箱 手机或者是QQ 百度 微博Oauth之类的方式去进行验证 保证用户体验的同时还是可以防的住的
    nozama
        15
    nozama  
       2015-07-07 12:53:56 +08:00
    第三方登录更多是吸引用户注册的手段, 不能本末倒置吧
    从业务流程上改进, 像Stackoverflow那样, 没有威望就只能旁观. 僵尸再多也是枉然.
    realpg
        16
    realpg  
    PRO
       2015-07-07 12:58:03 +08:00
    这就需要各种黑科技了……
    别按正常套路出牌。。。
    denger
        17
    denger  
       2015-07-07 13:08:56 +08:00
    建议学学 qq. http://zc.qq.com/chs/index.html
    研究一下人家的规则吧, 就目前国内来说 qq 这方面做的是不错的~
    janxin
        18
    janxin  
       2015-07-07 13:23:31 +08:00
    IP限制很不友好,推荐你直接上中文验证码+短信验证码,最后才限制ip注册上限(一个肯定不合理)

    实在不行就邀请码机制,限码
    shiniv
        19
    shiniv  
       2015-07-07 13:44:07 +08:00
    @yzn 看到防水墙,应该就是discuz吧?如果是discuz的话,可以改改获取IP那部分,获取IP这部分是可以伪造的。
    fraudmetrix
        20
    fraudmetrix  
       2015-07-07 15:28:43 +08:00
    基本上像论坛这种情况,是普遍存在的。你可以尝试一下第三方平台的接入http://www.tongdun.cn/activity/A201506.html?1 以我多年社区管理的经验,这种方式目前比较奏效。
    它可以针对登录,注册,发帖等事件,调用第三方的API接口,通过分析设备指纹,IP,发帖速度进行风险识别。只要是高风险,就无法注册,无法登录。比DZ自带的好用多了。
    blaboy
        21
    blaboy  
       2015-07-07 16:09:45 +08:00 via Android
    语音验证码,下拨到用户手机。
    kn007
        22
    kn007  
       2015-07-07 16:38:37 +08:00
    语音验证码+1
    branchzero
        23
    branchzero  
       2015-07-07 16:42:27 +08:00
    语音验证码 +10086
    图形验证码的话,市面上一堆打码平台可破。。。
    binyuJ
        24
    binyuJ  
       2015-07-07 16:43:12 +08:00
    话说用那种传说中的“汉字顺序并不影响阅读”来做验证码的话效果如何?验证码是乱序的让用户输正常顺序的
    learnshare
        25
    learnshare  
       2015-07-07 16:43:13 +08:00
    邮箱邮件验证,手机短信验证
    timor
        26
    timor  
       2015-07-07 17:00:00 +08:00
    短信验证防不住.
    语音验证码靠谱.
    www.yuntongxun.com
    一直在用这家.
    clino
        27
    clino  
       2015-07-07 17:12:33 +08:00
    要不用户输入邮箱以后点击收到的邮箱链接才能注册,链接只针对此邮箱用户可用
    这样稍微会麻烦点哈
    elyamen
        28
    elyamen  
       2015-07-07 17:16:49 +08:00
    要不您学学12306,整个请选出以下图中所有的蔬菜?
    Imyssed
        29
    Imyssed  
       2015-07-07 17:27:03 +08:00
    @elyamen 太反非人类就不用了,我觉得百度的验证码系统就挺不错的...
    liuhaotian
        30
    liuhaotian  
       2015-07-07 17:28:36 +08:00 via iPhone
    session是没有用的,session依赖cookie在本地存储session ID,那么我只需要随意修改session ID甚至禁用cookie就可以肆意注册
    chairuosen
        31
    chairuosen  
       2015-07-07 17:28:51 +08:00   1
    弄个公众号机器回复下发邀请码。一个openID只给一个
    lightening
        32
    lightening  
       2015-07-07 17:31:10 +08:00
    你确定你的系统没办法绕过验证码吗?
    akira
        33
    akira  
       2015-07-07 18:06:00 +08:00
    session 和 cookie都是可以随便伪造的。
    验证码有打码平台。
    短信验证有短信验证平台。
    IP限制有虚拟拨号/VPN/代理。

    任何限制都只是增加成本,只要他的收益大于成本,依然是会有人去做。
    所以,要么你加大他的成本,要么你降低他的收益,从这个角度出发去做吧。
    mrjoel
        34
    mrjoel  
       2015-07-07 18:33:54 +08:00
    手机语音验证码 简直无解。。。。23333333
    fyooo
        35
    fyooo  
       2015-07-07 18:40:52 +08:00
    @chairuosen 弄个公众账号,从公众账号下发语音邀请码,哈哈
    Desert
        36
    Desert  
       2015-07-07 19:01:44 +08:00
    可以问下什么网站吗?这么多用户想注册
    zcbenz
        37
    zcbenz  
       2015-07-07 19:07:13 +08:00
    在服务器端记录IP地址,用redis几十行代码的事。
    picasso250
        38
    picasso250  
       2015-07-07 20:13:35 +08:00
    假设楼主不是钓鱼贴。

    在不能打击到攻击者肉体(如报警)的情况下,有一个很好抗攻击方法让攻击的成本高于修复的成本。
    具体到楼主提到的这件事,如果楼主可以判断是谁注册的,做个脚本,每个小时删除一次数据库,就行了。
    ko
        39
    ko  
       2015-07-07 20:46:28 +08:00
    用微信加二次验证
    em70
        40
    em70  
       2015-07-07 20:49:58 +08:00 via Android
    暂停注册看看是不是还会写入,从而排除注入问题
    lyragosa
        41
    lyragosa  
       2015-07-07 21:06:25 +08:00
    让恶意注册你网站的收益小于他恶意注册的成本。

    就不会有人恶意注册了。

    我的网站开了几年,几乎没有打开过任何的注册限制(当然这些功能都做了,只是没实装),也没见有人大规模恶意注册。
    Stof
        42
    Stof  
       2015-07-07 21:11:57 +08:00
    @mrjoel

    23333...

    这个主意确实好,但也限制不了,只是门槛增加了。。。

    再加上这个 http://www.geetest.com/experience/popup
    xrui
        43
    xrui  
       2015-07-07 21:17:34 +08:00 via Android
    @Stof 蛇形的那个简直了…划了五次才过去
    bluepig
        44
    bluepig  
       2015-07-08 02:43:13 +08:00
    Google现在用的门牌号这种验证码貌似不错
    再加手机验证
    r00tt
        45
    strong>r00tt  
       2015-07-08 08:41:02 +08:00 via Android
    怎么获取的,x-forward-for这种只要修改头就可以伪造啦
    fraudmetrix
        46
    fraudmetrix  
       2015-07-08 09:57:07 +08:00
    recall704
        47
    recall704  
       2015-07-08 13:36:25 +08:00
    个人比较推荐等级制度来限制用户行为.

    比如不注册的用户不能下载.
    新注册的用户不能发帖子,能下载.
    用户完成某个动作后变成正式用户(比如 email 认证,手机认证)

    或者新注册的用户发的帖子是不公开的,需要审核的.

    说得简单点,就是用户需要对自己的行为付出一定的代价,这种代价越是无形的越好.
    sampeng
        48
    sampeng  
       2015-07-08 16:52:25 +08:00
    只要不是1小时几万注册那种。。。多点又不会少块肉。。。
    gamecreating
        49
    gamecreating  
       2015-07-08 18:32:25 +08:00
    手机号 短信 验证
    holinhot
        50
    holinhot  
       2015-07-08 23:39:48 +08:00 via iPhone
    短信验证妥妥的
    holinhot
        51
    holinhot  
       2015-07-08 23:49:09 +08:00 via iPhone
    现在都有专业打码团队 验证码何用
    holinhot
        52
    holinhot  
       2015-07-08 23:51:11 +08:00 via iPhone
    国外有那个游戏验证码 请把所有蚊子都拍死
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5052 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 03:53 PVG 11:53 LAX 19:53 JFK 22:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86