🖤 𝟐𝟎𝟐𝟔 𝒀𝑬𝑱𝑰 𝑴𝑬𝑺𝑺𝑨𝑮𝑬 𝑩𝑶𝑶𝑲 🖤
밀라노 예지 vs 파리 예지
믿지의 최애 예지는? 💗
마감기한: 05.17 (일) KST
이 투표 결과는 메시지북에 수록됩니다!
🗳️ https://forms.gle/knRw79ztUjcFnH1CA
#ITZY #YEJI #HappyYejiDay
#있지 #예지 #예지메시지북
原文 #黄礼志
''
Skip to main content
t_zset.c,会发现跳表在那里的用法远比教科书上的演示精巧得多。zslInsert 的源码,会发现它在插入时维护了一个 rank 数组——记录每一层从起点到插入位置跳了多少步。这不是跳表标准操作,而是 Redis 自己加的。目的很明确:ZRANK 命令需要 O(log n) 地返回元素排名,而不是遍历计数。这个 rank 信息在节点删除时也要更新,维护成本不高,但功能价值极大。这就是读源码比读论文多出来的东西——工程场景会倒逼数据结构变形。
alg 字段读取算法,然后据此选择验证方式。问题在于,攻击者可以把 alg 从 RS256(非对称)改成 HS256(对称),然后拿服务器公开的 RSA 公钥当 HMAC 密钥来签名。服务器拿到 token,看到 alg: HS256,就用公钥做 HMAC 验证——而攻击者刚刚就是用这把公钥签的名,验证自然通过。整条攻击链只需要一个公开的公钥端点和一个不做算法白名单的服务端。kernel/bpf/verifier.c,会发现这个文件有三万多行,占了整个 eBPF 子系统代码量的大头,比虚拟机解释器本身还大得多。换句话说,内核团队把最多的工程精力不是花在"怎么运行 BPF 程序",而是花在"怎么确保 BPF 程序不会搞崩内核"上。这个取舍很说明问题:在一个特权执行环境中,安全验证的复杂度永远高过执行本身。