全部文章
补丁发了四十一天,NAS 还是被锁了
十月底一批群晖 NAS 被 C3RB3R 勒索软件加密,文件名多出 .L0CK3D。攻击者用的两个洞 CVSS 9.8,不用登录就能读写任意文件,补丁 9 月 18 日就发了。这轮真正暴露的不是 DSM,是补丁到设备之间的那段空窗,以及和主数据躺在同一台机器上的那份备份。
AI 助手现在是一串钥匙
Check Point 在 10 月 23 日分析的 Aokigahara 木马,给 AI 客户端配置单开了一个收集模块。开发机上的钥匙已经长成了一串,而大多数防守清单里还没有这一项。这篇讲它偷什么、为什么现在值得偷,以及怎么自查。
没人被裁,只是没人被招了
斯坦福、SignalFire 和 IZA 三组数据在 2026 年指向同一件事:公司没有停止招工程师,只是停止招没经验的工程师。入门级招聘腰斩的账单要三年后才付,被拆掉的是学徒台阶,不是岗位本身。
代码多三成,交付没动:AI 编程的下游账单
哈佛 718 家公司的研究显示 agent 让代码量涨三成,需求吞吐却没有显著变化,增益全部堆在评审环节。结合 Anthropic 三万次改动一天的三档审批流程,讲清楚为什么键盘上的速度不再是约束,以及度量口径该怎么换。
一千个 agent 与一台复读机
八天前我给博客上的自动化脚本发了工牌,觉得自己把身份、权限、审计三件事做齐了。这半个月,Anthropic 把单次并行调度推到 1000 个 agent,而宾州州立三校的论文用一句跟着我念让六个主流框架把攻击者的工具调用照常派发。这篇从 1000 与 3 倍成本两笔账讲起,复现复读机攻击,把授权从编排层搬进工具边界,再说说哪些洞这套也管不了。
PRD 评审别再各说各话:一份从 12 个金融项目里长出来的对齐清单
2019 年冬天的投产前夜,我被业务方拦在会议室里翻规则卡,第 17 张卡上发现字段解释已经和上次评审会说的不一样。那次投产延期 3 周。从那之后我把 PRD 评审当项目来管,做了 12 年 PM,整理出这份从 12 个金融项目里长出来的对齐清单:术语对齐表、规则分级、决策权分清、结论分两栏、纪要 24 小时出。
Agent 有工牌了
10 月 8 日 Google Cloud 给 agent 发了工牌:有自己的邮箱、日历和目录身份,每个动作记在它自己名下。我看完回头数了一遍自己博客上的自动化脚本,发现它们全在共用一把管理员钥匙。这篇写我照着那套分工给三个脚本各发一个身份、按资源切权限、把动作全记下来,以及哪些我抄不动也不想抄。
MCP 工具投毒:白名单为什么拦不住它,以及一份可跑的审计器
工具描述在注册阶段就进入模型上下文,而攻击者可以让恶意动作由你已批准的合法工具完成,白名单、审批提示和内容过滤同时失效。这篇用一个不到两百行的描述审计器加调用前网关做实测,也诚实交代了正则审计的天花板。
密码是对的,人却登不进去:一次 Secure Cookie 的排查记录
后台登录接口返回成功,紧接着的请求却像没登录一样被弹回登录页。查完 Set-Cookie,再用严格客户端做了一次对照实验,才确认根因是 Secure 属性在 http 上不回传,而 curl 因为 loopback 例外一直没暴露它。
让模型给文章写摘要:一个会重试的 LLM 客户端,和一条 SSE 全链路
我把手写摘要交给了模型,但我不信任它。这篇讲两块最难的东西:客户端怎么处理超时、限流和退避抖动,以及 SSE 流式怎么从模型接口一路走到浏览器,中间三个环节各自的坑。
给博客加一个能搜正文的搜索:FastAPI 倒排索引 + Vue 3 搜索框
站内搜索只能匹配标题,正文完全搜不到。这篇是重写实录:一个两百行不到的 Python 内存倒排索引、中文 bigram 分词、FastAPI 接口,以及 Vue 3 那边必须处理的防抖与竞态。
推理预算:模型开始"思考"之后,延迟和成本该怎么算
思考型模型的账单波动能差十倍,延迟也从两秒变到四十秒。这篇给出一套任务分档的实操方法、分级路由代码、缓存与批处理两个省钱杠杆,以及怎么用评测脚本查表决策。
规格驱动开发:把"给 AI 派活"变成工程流程
让 AI 直接开干很爽,直到同一个功能返工四遍。这篇讲我改成"先写规格再动手"之后的具体做法:一份可抄的规格模板、怎么让 AI 先挑刺、什么时候这套方法反而是浪费。
Nginx 前端资源缓存最佳实践:该缓存的钉死,该协商的协商
一套可以直接抄的 Nginx 静态资源缓存配置:带哈希的资源缓存一年加 immutable,HTML 用 no-cache 协商,add_header 继承的坑,gzip 与 open_file_cache,以及怎么用 curl 验证 304 真的在工作。
我为什么自己写了个 Markdown 渲染器(以及你多半不应该)
这个博客的 Markdown 渲染器是我自己写的两百行代码。这篇文章讲它怎么来的、怎么踩坑的、为什么我不建议你模仿,以及这段经历真正值钱的地方在哪。
提示注入:LLM 应用的第一威胁模型
凡是让模型读外部内容的场景,都要假设有人试图改写它的指令。威胁建模、攻击面盘点和防御分层,一次讲透。
一个独立开发者的 2026 AI 工具栈
写码、写作、运维、设计,AI 已经渗透到独立开发的每个环节。盘点我今年实际留下来的工具组合和淘汰掉的方案。
AI 生成内容的合规自查清单
监管对 AI 深度伪造、虚假信息、违规爬取的整治持续收紧。内容生产者和技术开发者各需要一份自查清单。
每瓦特 Token 数:算力成本的新视角
AI 行业的瓶颈正在从算法转向能源和芯片。“单位功耗产出”这个指标,正在影响从数据中心到笔记本的一切设计。
用 Playwright 给个人项目补上端到端测试
个人项目没有测试团队,但 Playwright 让“一次配置、长期兜底”变成现实。记录用一天时间为博客搭起端到端测试的全过程。