首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
宝塔
V2EX  ›  Python

关于前后端分离的项目,如何使用验证码进行机器人验证

  •  
  •   wongyusing · 134 天前 · 2449 次点击
    这是一个创建于 134 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在在做一个电商网站项目。
    后端使用了,django-rest-framework 作为 api。 前端使用 angular-cli

    在关于注册这里遇到了一个问题。
    为了防止机器人恶意注册,我想调用验证码来防止机器人。
    前端中 angular-cli 接入了谷歌的 recaptcha。已经实现了。
    但是,后端该怎么实现呢?? 我阅读了阅读了谷歌的 recaptcha 的文档还是没有找到方法。

    12 回复  |  直到 2019-07-06 22:52:37 +08:00
        1
    wongyusing   134 天前
    我这里用的是 recaptcha V2 中的隐藏徽章类型。
    前端验证完成后,生成一段秘文 response。
    然后会连同 username,passwork、email 和 response 一起作为验证。
    现在问题主要是后端的该怎么处理。


    其实,撇开这个 recaptcha,我还有两种思路去处理这个**注册验证码问题**

    ## 自行生成验证码
    新建一个 captcha 表,
    里面给五个字段
    分别为:索引 ID、验证码答案、验证码图片地址、秘文 ,创建时间
    利用 python 验证码包生成一堆验证码图片,并存入数据库。
    用户访问时随机抽取一张验证码图片进行验证等操作。
    通过秘文来索引确认用户的验证是否正确。
    但是,这个思路缺陷很明显,我用之前练习**识别验证码的小 demo**都可以识别出这个验证码。
    所以,放弃。

    ## 通过邮箱发送验证码进行验证
    这个还是很好做的。
    不过用户体验很不好。
        3
    zhwithsweet   134 天前 via iPhone   ♥ 1
    有接口,后端拿到 authcode 去验证一下;还可以使用 accountkit
        4
    Destiny97   134 天前 via Android
    我用过腾讯防水墙,免费的,效果还不错,楼主可以试试
        5
    wongyusing   134 天前
    搞定了,
    Y 的,搞到我写了那么久。
    原来是 443 的原因。
    是"墙"的原因导致的错误
        6
    wongyusing   134 天前
    @Destiny97 这个项目是我接了加拿大的外包项目。
    尽量不用国内的服务。
    已经解决问题了。
        7
    wongyusing   134 天前
    怎么设置问题已解决啊??
    第一次提问。
        8
    xuanbg   133 天前
    防止恶意注册最有效的办法就是用短信验证码验证手机号,一个手机号只能注册一次就完了。
        9
    mmtromsb456   133 天前 via iPhone
    @wongyusing append 附言即可
        10
    Jirajine   133 天前 via Android
    @xuanbg 那是你天朝特色吧。
    国外要手机号的服务不多,强行要手机号很大可能劝退用户。
    不是每个国家的用户都习惯了被实名制和微信强 J 的。
        11
    wongyusing   133 天前
    @mmtromsb456 多谢。
        12
    wongyusing   133 天前
    下面是我解决问题的写法,
    主要原因是由于一开始没有设置全局的科学网络导致的 443 错误。
    https://github.com/wongjyusing/v2ex/blob/master/test.md
    等我完成手头上的两个项目后。
    会将整个过程写成博文放到我的博客上。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2259 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 08:19 · PVG 16:19 · LAX 00:19 · JFK 03:19
    ♥ Do have faith in what you're doing.