惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
V
V2EX
博客园 - 【当耐特】
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
量子位
MyScale Blog
MyScale Blog
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
月光博客
月光博客
I
InfoQ
WordPress大学
WordPress大学
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
小众软件
小众软件
罗磊的独立博客
Recent Announcements
Recent Announcements
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

两双筷子

密码管理:从花密到 Bitwarden 自托管 SQLite Zstd进阶压缩-批量压缩 Seven Player:Windows上播放115网盘视频的增强工具 CDN 盗刷也是被我遇上了 博客五年 1Panel 部署 FastAdmin 管理端访问 302 解决方案 解析到本地127的神奇域名 Typecho 多吉云上传插件 极简 Docker 入门笔记 SQLite + zstd:定时任务日志压缩优化实践 离线授权码设计思路 海南环岛2:中线+东线 Typecho 垃圾评论过滤插件
多用户 PassKey 认证插件
无名氏 · 2026-03-08 · via 两双筷子

@两双筷子还是建议检查一下 GPT 实现的那个 challenge 验证,是硬编码的验证,也就是 GPT,硬编码了 OPENSSL_ALGO_SHA256 实际上只能处理 RSA 签名,对于目前最主流的 ES256 (椭圆曲线) 签名,在底层逻辑上是不匹配的。并且还多处用 @ 抑制 PHP 和 OpenSSL 报错,看一下你本地的公钥的算法,建议一下,或者是 JavaScript 里面有没有声明服务器支持的算法。以及这个插件硬编码了登录的 session 是有问题的,Typecho 登录本身是防御 session 重放的,但是这个硬编码不行,你可以参考另外一个 Passkey 插件,实现的就很好,就是:
// 使用 Typecho 标准的 simpleLogin 方法
$userWidget = \Widget\User::alloc();
$expire = 30 * 24 * 3600;

if (!$userWidget->simpleLogin($user['uid'], false, $expire)) {
error_log('[Passkey][ERROR] Failed to set login state for user: ' . $user['uid'] . ' - ErrCode: ' . self::ERR_UNKNOWN);
$this->error('登录失败,请重试', self::ERR_UNKNOWN);
return;
}
以及这个解码的时候,如果构造一个循环的证书套,这个没有限制解码层数,会把服务器的计算资源耗尽的。