环境
- 服务端:twikoo-cloudflare (基于 twikoo-func v1.6.44)
- 客户端:twikoo v1.7.x (CDN 加载)
- 部署方式:Cloudflare Workers + D1 + R2
Bug 1:登录 / 权限验证双重哈希(严重)
客户端 v1.7.x 在 LOGIN 时发送的是 md5(password) 而非明文密码, 服务端 login() 又执行了一次
md5(),导致两次哈希后无法匹配数据库中存储的 ADMIN_PASS。同理 isAdmin() 和 SET_PASSWORD 也有相同问题。
涉及函数:src/index.js 中的 login()、isAdmin()、setPassword()
Bug 2:R2 图床上传被前端拦截(严重)
GET_CONFIG 返回的配置中 IMAGE_CDN 为空(因为用的是 R2
而非第三方图床),前端检查到此字段未配置,直接弹"博主未配置图床服务",连 upload 请求都不发出。即使服务端已正确配置 R2
绑定也无效。
涉及代码:src/index.js 中 GET_CONFIG / GET_CONFIG_FOR_ADMIN case
Bug 3:dataURIToBlob() 正则缺陷(中等)
header.match(/:(.*?);/)
假设所有 data URI 都带 ;base64,但 data:image/jpeg,xxxx 这种不含分号的合法格式会导致 match() 返回 null,随后访问 [1]
抛出 TypeError。建议改为匹配分号或结尾:
header.match(/:(.*?)(?:;|$)/)
Bug 4:LIGHTBOX 灯箱放大了头像(轻微)
LIGHTBOX 功能开启后,评论区头像
也被灯箱选择器捕获,点击头像会弹出放大效果——头像并非评论插图,不应纳入灯箱范围。
建议限缩选择器,仅匹配评论内容区的图片。
Bug 5:已登录状态下刷新页面进入管理面板,登录框会闪现
浏览器刷新后,客户端异步调用 GET_CONFIG 验证管理权限,但 UI 默认先渲染了登录弹窗,等 API 返回 IS_ADMIN: true
后才切换到后台面板,造成短暂的"闪现"。建议在权限验证完成前显示 loading 状态,而非直接展示登录框。
建议
以上 bug 1-3 已在 src/index.js 中临时修复,希望上游在后续版本中一并处理,让 cloudflare worker
版本保持与最新客户端的兼容。Bug 4 及Bug 5 属于客户端前端问题,需要修改 twikoo 客户端 JS。
以上都是部署中目前发现的一些问题,没办法后端只能让DS老师改改接着用了,前端只能靠作者大大了,顺带给作者大大提个议题!很好用的插件呀,希望cloudflare版的也能尽快更新至最新版!
环境
Bug 1:登录 / 权限验证双重哈希(严重)
客户端 v1.7.x 在 LOGIN 时发送的是 md5(password) 而非明文密码, 服务端 login() 又执行了一次
md5(),导致两次哈希后无法匹配数据库中存储的 ADMIN_PASS。同理 isAdmin() 和 SET_PASSWORD 也有相同问题。
涉及函数:src/index.js 中的 login()、isAdmin()、setPassword()
Bug 2:R2 图床上传被前端拦截(严重)
GET_CONFIG 返回的配置中 IMAGE_CDN 为空(因为用的是 R2
而非第三方图床),前端检查到此字段未配置,直接弹"博主未配置图床服务",连 upload 请求都不发出。即使服务端已正确配置 R2
绑定也无效。
涉及代码:src/index.js 中 GET_CONFIG / GET_CONFIG_FOR_ADMIN case
Bug 3:dataURIToBlob() 正则缺陷(中等)
header.match(/:(.*?);/)
假设所有 data URI 都带 ;base64,但 data:image/jpeg,xxxx 这种不含分号的合法格式会导致 match() 返回 null,随后访问 [1]
抛出 TypeError。建议改为匹配分号或结尾:
header.match(/:(.*?)(?:;|$)/)
Bug 4:LIGHTBOX 灯箱放大了头像(轻微)
LIGHTBOX 功能开启后,评论区头像
也被灯箱选择器捕获,点击头像会弹出放大效果——头像并非评论插图,不应纳入灯箱范围。
建议限缩选择器,仅匹配评论内容区的图片。
Bug 5:已登录状态下刷新页面进入管理面板,登录框会闪现
浏览器刷新后,客户端异步调用 GET_CONFIG 验证管理权限,但 UI 默认先渲染了登录弹窗,等 API 返回 IS_ADMIN: true
后才切换到后台面板,造成短暂的"闪现"。建议在权限验证完成前显示 loading 状态,而非直接展示登录框。
建议
以上 bug 1-3 已在 src/index.js 中临时修复,希望上游在后续版本中一并处理,让 cloudflare worker
版本保持与最新客户端的兼容。Bug 4 及Bug 5 属于客户端前端问题,需要修改 twikoo 客户端 JS。
以上都是部署中目前发现的一些问题,没办法后端只能让DS老师改改接着用了,前端只能靠作者大大了,顺带给作者大大提个议题!很好用的插件呀,希望cloudflare版的也能尽快更新至最新版!