首页
热点话题
全栈
开发工具
经典语录
前端技术
后端技术
智能体
搜索
登录
搜索
一笑痕
人生若只如初见,
是可喜亦或者是可悲?
累计撰写
259
篇文章
累计收到
7
条评论
首页
热点话题
全栈
开发工具
经典语录
前端技术
后端技术
智能体
包含标签 【鉴权与安全】 的文章
2026-11-4
Agent 执行前,审批必须绑定完整调用内容
人工审批如果只记住工具名,执行前参数仍可能被替换。用 Node 固定桩对工具名与参数做 SHA-256 指纹,再在分发前复核,拦住审批后把归档改成删除的变更。
2026年-11月-4日
32 阅读
0 评论
智能体
2026-11-4
execFile 保住参数边界,exec 会交给 shell 重读
execFile 把可执行文件和参数数组分开传递,空格与 shell 元字符留在参数里;exec 则把整条字符串交给 shell 解析。用安全的 printf 本机演示两者如何拆分单词、展开变量,以及为什么外部输入不该拼进命令字符串。
2026年-11月-4日
35 阅读
0 评论
后端技术
2026-10-25
缓存 HTML 没换,CSP nonce 却先变了
CSP nonce 必须同时出现在响应策略与 HTML 脚本标签中。若缓存保留旧 HTML、响应层却每次重发新 nonce,二者就会失配;本机用 Node.js 构造缓存命中,逐项比较响应头与正文。
2026年-10月-25日
59 阅读
0 评论
全栈
2026-10-22
constructor 混进工具表,调度会走错函数
普通对象直接按工具名取函数,会把原型链上的 constructor、toString 也当成可调用项。Node 固定桩对照 Object.hasOwn 的结果;模型和真实 Agent 框架没有参与。
2026年-10月-22日
55 阅读
0 评论
智能体
2026-10-21
URL 解析先折叠了路径,验权不能再看原字符串
Node 的 WHATWG URL 会在 pathname 暴露前处理点路径段,百分号编码的斜杠却保留到解码阶段;如果路由、鉴权和文件映射各自解码一次,路径边界就会漂移。本文用本机 Node 输出拆开这几步。
2026年-10月-21日
66 阅读
0 评论
后端技术
2026-10-20
同一个 302,同源保住 Authorization,换个端口就没了
19 个字符的 Authorization 在同源 302 后原样到达,换成另一个端口就剩 0 个字符,换成 localhost 也一样。Node 的两个服务对着测,Cookie 一起被删,x-api-key 活着。
2026年-10月-20日
73 阅读
0 评论
全栈
2026-10-20
timingSafeEqual 要求两边字节数相等
crypto.timingSafeEqual 在两个 Buffer 长度不等时抛 RangeError,不返回 false。传字符串会先报类型错,Buffer.from 解 hex 遇到坏字符会静默截断,拿字符数做长度判断也会失效。
2026年-10月-20日
64 阅读
0 评论
后端技术
2026-10-19
JSON 请求发不出去时,先看 OPTIONS
跨域 POST 的 Content-Type 会影响浏览器是否先发预检。text/plain 与表单类型可直接发送,application/json 会触发 OPTIONS;服务器要正确回应预检,正式请求才会继续。
2026年-10月-19日
64 阅读
0 评论
全栈
2026-10-13
180 字节的响应体,头要付 2086 字节
180 字节的响应,一个来回 456 字节,头占 60.5%。Cookie 加到 1800 字节,来回涨到 2266 字节,体只剩 7.9%。gzip 只动体,404 与 304 没有体,头照付。
2026年-10月-13日
65 阅读
0 评论
全栈
2026-10-11
长度差一个字节,timingSafeEqual 直接抛错
用 crypto.timingSafeEqual 比 token,长度不同时它不返回 false 而是抛 RangeError,异常本身就是长度信号。同一份实测里还能量出:朴素逐字节比较的耗时随匹配前缀从 7 ns 涨到 44 ns,而常量时间比较平在 40 ns 上下。
2026年-10月-11日
72 阅读
0 评论
后端技术
2026-9-29
别用 X-Forwarded-For 最左边那段,那是客户端自己填的
同一台机器发五个请求,各自往 X-Forwarded-For 里塞一个不同的 IP,后端按第一个值取客户端地址,就得到五个不同身份,限流和黑名单同时失效。两层代理本机搭起来实测:取值位置放在哪一段,结果完全不同,取最后一个才稳定。
2026年-9月-29日
85 阅读
0 评论
全栈
2026-9-28
网关先验签再解析 JSON,解析器拿到的是空串
签名校验通过,JSON 解析报 Unexpected end of JSON input,两个中间件各自都认为自己做对了。请求体是一支只能读一次的流,谁先读完谁拿全,后面的人拿到 0 字节。六条检查项把这件事的边界钉住,包括为什么这类 bug 不会在日志里留下痕迹。
2026年-9月-28日
98 阅读
0 评论
全栈
2026-9-25
「__proto__」解析时是普通键,合并时才动原型
请求体里的 proto 在 JSON.parse 之后只是一个普通自有属性,展开复制也干净;换成 Object.assign 或者递归合并默认值,同一份数据就会改写原型,甚至波及全局对象。三条常见挡法各自挡到哪一步,下面逐条对输出。
2026年-9月-25日
97 阅读
0 评论
后端技术
2026-9-23
Set-Cookie 别拼成一行,两个 Cookie 会变成一个
网关转发上游响应时,把 Set-Cookie 数组按逗号拼成一行,是一条很常见的写法。实测下来两个 Cookie 会合并成一条,带 Expires 的那条还会被逗号切成两条。规范里这条头本来就不允许合并,Node 的 setHeader 也接受数组。
2026年-9月-23日
129 阅读
0 评论
全栈
2026-9-22
跟着跳转走一趟,POST 和 Authorization 各在哪一步没了
同样一个 POST 请求跟一次跳转,301、302、303 到终点时已经变成 GET,请求体没了;307 和 308 保持 POST。Authorization 在跨源那一跳被剥掉。本机两个服务端逐条记账,把状态码、方法、请求体字节数、头部有无摆在同一次运行里。
2026年-9月-22日
132 阅读
0 评论
全栈
2026-9-21
跨站能带上的只有 None 加 Secure 这一种
本机起两个源,接口在 127.0.0.1、页面在 localhost,用真实 Chrome 发出请求,服务端逐条记下收到哪些 Cookie。十几组场景排成矩阵:SameSite、Path、credentials 与顶层导航各占一块。
2026年-9月-21日
130 阅读
0 评论
全栈