• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yzn
V2EX  ›  程序员

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

  •  1
     
  •   yzn · Jul 7, 2015 · 14514 views
    This topic created in 4138 days ago, the information mentioned may be changed or developed.
    发现网站有恶意的注册,可以基本肯定不是人手动恶意注册。

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

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

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

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

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

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

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

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

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

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

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

    就不会有人恶意注册了。

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

    23333...

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

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

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

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

    说得简单点,就是用户需要对自己的行为付出一定的代价,这种代价越是无形的越好.
    sampeng
    sampeng
    Jul 8, 2015
    48
    只要不是1小时几万注册那种。。。多点又不会少块肉。。。
    gamecreating
    gamecreating
    Jul 8, 2015
    49
    手机号 短信 验证
    holinhot
    holinhot
    Jul 8, 2015 via iPhone
    50
    短信验证妥妥的
    holinhot
    holinhot
    Jul 8, 2015 via iPhone
    51
    现在都有专业打码团队 验证码何用
    holinhot
    holinhot
    Jul 8, 2015 via iPhone
    52
    国外有那个游戏验证码 请把所有蚊子都拍死
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2900 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 166ms · UTC 10:57 · PVG 18:57 · LAX 02:57 · JFK 05:57
    ♥ Do have faith in what you're doing.