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

来个正方教务免验证码实现单点登录

  •  
  •   Qug · 2018-12-04 16:10:35 +08:00 · 1428 次点击
    这是一个创建于 2174 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ZfRobot-cli

    使用详情看 github: https://github.com/qinshuang1998/ZfRobot-cli

    基于 swoole 的校园单点登录解决方案

    本脚手架基于swoft,主要用于校内师生认证,学生使用正方教务的免验证码登录,教师使用入库查询。

    认证方案:

    • BasicAuth
    • BearerToken (JWT)
    • ACL

    正方教务系统验证码 验证码字典样本数为500 条 ,不加上网络延时的耗时在0.14s - 0.2s之间

    • 测试集测试的结果:
    • 200个测试样本 中 整体识别正确率 87%,单个字母识别正确率到 96.5%

    部署安装

    环境需求

    部署前需要保证:

    1.Linux 系统

    2.php 版本 7.1 以上

    3.redis 服务

    4.php-redis 拓展

    5.php swoole 拓展

    必须安装的

    • 安装 PHP 并且版本至少 >7.0,推荐 7.1+
    • 安装 php 包管理器 composer
    • 安装 redis 的异步客户端 hiredis
    • 连接迭代器依赖 pcre
    • 安装 php 扩展 swoole, 并且版本至少 >=2.1
      • swoole 开启协程和异步 redis
    • 其他需要安装和启用的 php 扩展有:PDO

    有冲突的

    下面列出一些已知的和 swoole 有冲突的 php 扩展,请使用 swoft 时不要安装或禁用它们:

    • xdebug
    • xhprof
    • blackfire
    • zend
    • trace
    • uopz

    手动安装

    git clone https://github.com/qinshuang1998/ZfRobot-cli.git cd ZfRobot-cli composer install cp .env.example .env vim .env # 根据需要调整启动参数

    然后下载: https://pan.baidu.com/s/1eASeIfVFgQZgJTsxtM8cGg 提取码: xqgh

    进入\vendor\kurisu\captcha_reader\src\Config\app.php

    将 useGroup 项改为 ZhengFangNormal

    然后将下载的 sample.zip 文件解压后覆盖到\vendor\kurisu\captcha_reader 下

    数据库安装:

    自行创建空数据库,将根目录下 teacher.sql 文件导入库中,然后配置.env 文件的数据库信息即可


    启动 /停止服务

    php bin/swoft start # 启动服务器,端口在.env 中配置

    php bin/swoft start -d # 守护进程方式启动

    php bin/swoft stop # 停止服务

    访问 http://域名:端口 /

    看见 swoft 几个字样说明部署成功


    接口调用

    icop
        1
    icop  
       2018-12-04 16:32:50 +08:00
    你要知道,需求发送的默认密码和老师的默认默认密码都是统一的。而且账户一般都是学号,老师是教工号。
    没有验证码,这数据分分秒秒都被“年轻”黑客爆掉了。你他们的底裤都给脱了。
    Qug
        2
    Qug  
    OP
       2018-12-04 16:58:57 +08:00
    @icop 这是接口 api 的安全问题哈,和接口本身无关的,emm...可以给接口加调用阈值防止被恶意爆破,嫌麻烦直接给服务器上个安全狗,单 ip 频率过快直接就封了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:23 · PVG 20:23 · LAX 04:23 · JFK 07:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.