• mingmeo
    Passkey 通行密钥登陆支持
    ID passkey-login版本 1.1.0插件制作者 mingmeo免费1023 行 / 36.9 KBHook / 路由
    为您的论坛提供通行密钥(Passkey)免密码登录!
    app/plugins/passkey-login/plugin.php
    开发日志已有 1 条

    此项目接受所有登录用户协助维护和提交更新。

    • banming
      banming
      版本 1.1.0 514d87f93fb5 更新:旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。release
    主楼
  • 质量报告

    插件质量报告

    插件:passkey-login

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    login.after_form登录表单后置区域否3----
    profile.after_form个人资料编辑表单否3----

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_passkey_login_credentials

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否--
    credential_idkey否-唯一
    public_keyTEXT否--
    counteruint否0-
    aaguidVARCHAR(32)否''-
    nameVARCHAR(80)否''-
    device_nameVARCHAR(120)否''-
    transportsTEXT否''-
    created_atuint否--
    last_useduint否--

    plugin_passkey_login_challenges

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否--
    challengestring否--
    typeVARCHAR(20)否--
    expires_atuint否--
    #1
  • mingmeo

    通行密钥支持插件

    paste-20260812-170055.png
    paste-20260812-170242.png

    安装后为您的论坛增加通行密钥(Passkey)登陆功能。

    最后编辑于 2026-08-12 22:09
    #2
  • bbs1org

    这个可以。安全性大大增加

    #3
  • mingmeo

    bbs1org-plugin-passkey v1.1.0

    移除多余的配置界面,安装即用。

    最后由 mingmeo 编辑于 2026-08-13 13:14
    #4
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    1. 未校验用户验证位:login_complete 解析 authenticatorData 后读出了 $flags 却未使用(plugin.php:573-576),而登录/注册选项声明了 userVerification: 'required',服务端实际不强制 UV,认证强度可被降级。建议校验 flags 的 UP(0x01)/UV(0x04) 位,UV 未置位即拒绝。
    2. RP ID 与来源校验偏弱:passkey_login_rp_id() 直接取 $_SERVER['HTTP_HOST'](:276-279),origin 校验仅比对其 host、忽略 scheme 与端口(:563-565)。建议 RP ID 固定为站点可信域名并完整校验 origin。
    3. 计数器克隆检测可绕过:if ($counter > 0 && $counter <= $storedCounter)(:604-606),认证器返回 0 时直接放行。建议对 0 值做降级处理。

    ⚡ 性能问题

    未发现明显问题(无红区钩子 DB 读、无 N+1、无每请求外部请求)。

    🐛 功能/规范缺陷

    1. 配置 ID 不一致:manifest id 为 passkey-login,但 plugin_config/plugin_save_config 使用 passkey_login(:48、:55),导致 enabled 开关永不生效、卸载清理无效。建议统一为连字符 ID。
    2. 全局函数未加前缀:json_error()、json_success()(:342、:348)与其他插件/核心重名时会致命报错。建议改为 passkey_login_json_error() 等。
    3. 建表字段类型硬编码:public_key TEXT、aaguid VARCHAR(32)、transports TEXT 等(:20-37)未用 app_db_types(),跨库兼容性存疑。

    ✅ 修复优先级

    配置 ID 不一致 → 未校验 UV/UP 位 → 无前缀函数 → 字段类型 → origin/计数器加固。

    #5
  • 399

    🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)

    插件:Passkey 通行密钥登陆支持(passkey-login)v1.1.0

    结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。

    #6
  • mingmeo

    旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。

    #7

发表回复

登录后回复