新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何看懂 YOURLS 认证机制:登录 Cookie 与签名时间戳验证完整指南

发布时间:2026/9/19 23:56:12来源:尧图网络
如何看懂 YOURLS 认证机制:登录 Cookie 与签名时间戳验证完整指南
如何看懂 YOURLS 认证机制登录 Cookie 与签名时间戳验证完整指南【免费下载链接】YOURLS The standard, self hosted, powerful and customizable, URL shortener in PHP项目地址: https://gitcode.com/gh_mirrors/yo/YOURLSYOURLS是一个自托管的 PHP 短链接生成器它的认证体系决定了谁能创建短链、谁能在后台查看统计。本文带你完整走一遍认证流程从浏览器登录后的Cookie 会话到 API 调用的签名signature与时间戳timestamp验证帮你彻底理解这套安全设计。一、认证入口一个总开关所有需要认证的请求最终都会走同一条路径。以 API 为例入口文件yourls-api.php 启动后立刻调用yourls_maybe_require_auth()核心判断includes/functions-auth.php 中的yourls_maybe_require_auth()当站点处于私有模式YOURLS_PRIVATE时引入 includes/auth.php关键函数yourls_is_valid_user()L26会依次尝试4 种认证方式任一成功即放行。这 4 种方式按优先级依次为顺序方式适用场景判定函数1签名 时间戳仅 APIyourls_check_signature_timestamp()2纯签名仅 APIyourls_check_signature()3用户名 密码API 和后台yourls_check_username_password()4登录 Cookie仅浏览器yourls_check_auth_cookie()二、登录 Cookie 是如何工作的1. 登录后写入加密 Cookie用表单登录成功后yourls_store_cookie()L507会写下一个加密 Cookie有效期默认 7 天YOURLS_COOKIE_LIFE可在 includes/Config/InitDefaults.php 调整。之后每次访问yourls_check_auth_cookie()L358都会拿 Cookie 值与每个合法用户的预期值做hash_equals比对命中即恢复会话。2. Cookie 名称本身就是安全设计yourls_cookie_name()L677生成的名字形如__Host-yourls_随机盐包含两层防护每站点唯一盐值由站点 URL 派生避免sho.rt和very.sho.rt这类子域之间的 Cookie 串号__Host-/__Secure-前缀L608HTTPS 环境下自动启用阻止兄弟子域读写该 Cookie并强制只通过安全通道传输。Cookie 默认还带HttpOnly和SameSiteLax属性防止 XSS 窃取与 CSRF 携带。三、API 签名与时间戳验证不传密码也能调 APIYOURLS API 支持免密认证核心是把密钥换成了32 位签名由用户名密钥派生见yourls_auth_signature()L469。1. 纯签名模式请求只带?signaturexxx即可。yourls_check_signature()L446把签名与所有合法用户的签名逐一比对命中即通过。适合简单脚本但签名是永久令牌。2. 签名 时间戳模式推荐请求形如yourls-api.php?timestamp1716800000signaturesha256哈希actionshorturlurl...验证流程在yourls_check_signature_timestamp()L385中校验时间戳新鲜度yourls_check_timestamp()L495要求当前时间与戳的差值小于YOURLS_NONCE_LIFE默认 12 小时过期请求直接拒绝——有效防重放攻击限定哈希算法默认只允许sha256 / sha384 / sha512L436可通过hash参数指定比对签名分别计算hash(timestamp signature)和hash(signature timestamp)任一匹配即登录成功。官方远程 API 调用示例见 sample-remote-api-call.txt测试用例 tests/tests/auth/LoginAPISecureTimeTokenTest.php 演示了签名hash(sha256, yourls_auth_signature(yourls).time())的标准生成方式。四、表单登录背后的三道防线即使走最普通的用户名密码登录yourls_check_username_password()L130也藏着多层校验一次性令牌Nonce登录表单里有一个隐藏的nonce字段admin_login由yourls_verify_nonce()L804校验。它是时间片 动作 用户的 HMAC 哈希12 小时内有效防止登录表单被跨站重放CSRF安全比对所有密码/签名/Cookie 比对都用hash_equals()抵御时序侧信道攻击自动密码加密includes/auth.php 会在后台首次加载时把配置文件里的明文密码自动替换为phpass:xxx哈希yourls_hash_passwords_now()L180并持续警告废弃的 MD5 存储方式。五、安全实践清单✅私有模式在 config.php 中定义YOURLS_PRIVATE全站受保护✅API 优先用签名 时间戳避免把用户名密码写进脚本✅签名别当密码用纯签名是永久令牌泄露即失守配合时间戳可限制重放窗口✅务必使用 HTTPS才会启用__Host-Cookie 前缀与 Secure 属性把浏览器侧防护拉满✅密钥要随机YOURLS_COOKIEKEY是 Cookie、Nonce、签名派生的总密钥请换成足够长的随机字符串。总结YOURLS 的认证是一套小而全的设计Cookie 会话解决浏览器登录体验签名时间戳解决 API 免密调用的安全Nonce补上 CSRF 防线密码自动哈希守住存储底线。理解这四块你就掌握了 YOURLS 私有部署的全部安全要点。想动手验证可以参考 tests/tests/auth/ 目录下的完整测试用例以及登录表单渲染逻辑 includes/functions-html.php。【免费下载链接】YOURLS The standard, self hosted, powerful and customizable, URL shortener in PHP项目地址: https://gitcode.com/gh_mirrors/yo/YOURLS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

影视仓TV+手机版:离线可运行的直播源集成终端 2026/9/20 0:47:20

影视仓TV+手机版:离线可运行的直播源集成终端

1. 这不是“APP”,而是一套轻量级家庭影音中枢方案最近在几个本地技术交流群里,频繁看到有人发截图问:“这个‘影视仓TV’手机版到底靠不靠谱?说内置高清直播源,真能直接点开就看?”——我一开始也以为是又…

阅读更多 →
虚拟现实在护理教学中的落地:从VR训练到Unity开发与汇报 2026/9/20 0:47:20

虚拟现实在护理教学中的落地:从VR训练到Unity开发与汇报

简介:面向护理专业教师、临床带教人员及护理教育研究者的教学演示文稿,系统阐述虚拟现实技术在护理学教学中的应用。内容从护理教育目标与案例式、情景模拟等传统实践教学切入,说明VR在解剖学、介入放射学、内窥镜训练等领域的已有案例&#…

阅读更多 →
代码评审失效?用自动化与流程设计打造高效Code Review体系 2026/9/20 0:47:20

代码评审失效?用自动化与流程设计打造高效Code Review体系

1. 为什么大多数评审会变成"签字盖章"1.1 五种典型的评审失效信号我加入过不少团队,也帮朋友的公司救过火。几乎每到一处,代码评审(code review)都是同一个剧本:立项第一天大家信誓旦旦"以后所有改动必…

阅读更多 →
iperf3网络性能测试实战:TCP/UDP带宽、丢包与抖动排查指南 2026/9/20 0:47:20

iperf3网络性能测试实战:TCP/UDP带宽、丢包与抖动排查指南

网络卡顿、丢包、带宽跑不满,这类问题几乎每个做运维、做后端、搞弱电布线的朋友都遇到过。排查的时候最怕什么?最怕“凭感觉”——用户说慢,你 ping 一下延迟正常,就不知道从哪下手了。我干了十多年一线,见过太多人把…

阅读更多 →
Codex辅助开发微信小游戏:从零到上线全流程实战 2026/9/20 0:47:20

Codex辅助开发微信小游戏:从零到上线全流程实战

1. 从一行代码到上线审核:这个微信小游戏到底是怎么跑起来的去年年底我脑子里冒出一个特别小的玩法点子——一个靠重力感应控制小球躲避障碍的休闲小游戏。想法不复杂,但真要落地,摆在面前的有两个现实问题:一是我不太想花大量时间…

阅读更多 →
从页面脚本到 DevTools:Hister qutebrowser 集成方案的技术演进之路 2026/9/20 0:44:19

从页面脚本到 DevTools:Hister qutebrowser 集成方案的技术演进之路

从页面脚本到 DevTools:Hister qutebrowser 集成方案的技术演进之路 【免费下载链接】hister Your own search engine 项目地址: https://gitcode.com/GitHub_Trending/hi/hister Hister 通过浏览器扩展把用户浏览过的渲染后页面自动收录进私有的搜索引擎。q…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞