94403a1a062ff1314270ffb4bbb9b4547dd659a3
背景:P0-07 支付加固回归中发现——admin/agent 登录成功时无条件重新生成 bcrypt 哈希并覆盖 DB 密码列。同一账号第二次登录后,第一次会话的 $_SESSION[xx_password](存"存储值"设计)与 DB 新哈希不再相等, checklogin 的 WHERE username AND password=会话 重校验失败, 首个会话的后续操作(支付、后台操作)被拒。P0-05 原意只应在"旧格式 惰性迁移"时写回新哈希,现已哈希的存储值重复登录不应再变。 修复(仅当存储值尚未为 bcrypt 时写回新哈希,否则沿用原值): - admin/ajax.php 登录:$newhash = wq_is_hashed_password($result['password']) ? $result['password'] : wq_hash_password($_POST['password']) - agent/ajax.php 登录:同上 - (API 用户登录 api/Communication.php 已有该条件判断,无需改动) - 惰性迁移语义不变:旧 md5(admin)/ 旧明文(agent)仍登录一次即升级 bcrypt 回归(P0-05b 13 项全 PASS,8082 内置服务器): - admin 双会话:第二次登录不改写 DB 哈希;两个会话 checklogin 均有效 - 模拟旧明文代理(DB 直接置明文):登录一次即升级为 bcrypt; 第二次登录哈希不变;两个会话 checklogin 均有效 - P0-07 回归中的 yezf 双会话并发测试由本修复解锁(先前首会话因 再登录被破坏而报"代理账号或密码不匹配")
温泉PHP网络授权系统Beta
警告:原作者已不再更新程序,可能会存在安全漏洞、未知BUG,请谨慎使用;本项目由开源社区中的诸位自行维护。
许可协议
本程序仅供软件授权、学习研究、技术交流使用,严禁用于包括但不限于色情、赌博、诈骗等违反中华人民共和国相关法律法规或违反使用者所在地法律法规;本作者不再提供任何技术支持、出售、贩卖。 严禁将本程序二次开发后进行出售,请共同维护一个良好的开源环境。 您可以任意修改本程序,但您所做的修改必须通过 Pull Requests 提交到本仓库。
安装说明:
1.导入文件 “wenquan_auth.sql” 到您的数据库中 *** 导入完成后请务必删除数据库文件 ***
2.修改配置文件 “function/config.inc.php” 文件中的信息为您的数据库信息
3.通过执行以下SQL语句新增管理员(请自行将各项参数替换):
INSERT INTO sq_admin (ID, username, password, loginip, logintime, qq, lastaccesstime, accesstoken) VALUES (NULL, '您的用户名', MD5('您的密码'), '', unix_timestamp(now()) , '您的QQ', unix_timestamp(now()), '这里写64位随机字符');
上方执行示例:
INSERT INTO sq_admin (ID, username, password, loginip, logintime, qq, lastaccesstime, accesstoken) VALUES (NULL, '温泉', MD5('123456789'), '', unix_timestamp(now()) , '80071319', unix_timestamp(now()), 'JjYBHCBSNeuoNnkTVRCf5EENhZWDcolJOh7MQlmV9pn4S4p4SZFHJaSH75MBK3OZ');
以上语句表示新增一个管理员,用户名为【温泉】,密码为【123456789】,管理员QQ为【80071319】。
关于随机字符生成可使用:https://suijimimashengcheng.51240.com/
Languages
JavaScript
54.3%
PHP
17.9%
CSS
14.1%
HTML
10.4%
eC
3.3%