前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
返回 AI 情报前线
All News · 全部资讯9240
  • OpenAI官方研究:组织如何使用ChatGPT
  • OpenAI 推出 Ultrafast 模式:GPT-5.6 Sol 速度快 14 倍
  • 有人在法律文书中隐藏提示注入,让 AI 裁定对其有利
  • 本地LLM vs 云端API:决策框架与成本计算器
  • ChatGPT Work和Codex新增Mac活动记忆功能
  • 程序员用编译器把《DOOM》渲染算法直接转成神经网络权重
  • GitOps风格管理AI Agent记忆与工具配置版本
  • Gemini 3.7 Flash 发布:编程能力提升50%降价一半
  • TraceMotive:面向 AI Agent 执行的本地优先调试器
  • AI 生成代码应视为假设:给免费模型答案分配错误预算
  • 依赖距离检测:AI 改动的爆炸半径分析脚本
  • 别盲目合并 AI Patch:Git Worktree Replay Gate 方法论
  • Anthropic研究:AI Agent会争抢地盘并自发合作
  • Claude Code 新会话默认启用 Auto 模式
  • OpenAI 发布 GPT-5.6 三子型号系列
  • Cerebras 刷新 GPT-5.6 推理速度纪录
  • AI Agent生产落地:从Prompt链式调用到基础设施架构
  • AI原生企业构建:从Copilot到自主运营
  • Google Meet 测试版推出 AI 会议笔记功能,Gemini 自动生成纪要
  • Gemini 3.7 Flash 发布: 编程/Agent 能力大幅提升,每百万 Token 0.75 美元
  • 测试套件绕过隔离写入生产数据库的真实事故复盘
  • AI 生成的认证中间件: undefined === undefined 导致认证绕过
  • DeepSeek开源Agent Harness:一切皆插件的Node.js运行时
  • Node.js 多 Provider 代码审查摘要方案:JSON Output 实战对比
  • Hugging Face整合机器人开发工具链
  • Trace 不是 Governance:Agent 系统长期运行的架构边界
  • LangGraph 多 Agent 流水线实战:18 天开发 doc2slides 的工程权衡
  • 自建 LLM 路由:用对模型省 28x 成本
  • 训练数据仅占 0.3%,却占输出 36%:微调模型的数据污染陷阱
  • Gemini 3.7 Flash发布
  • Gemini 3.7 Flash三周内连发
  • Google Sheets Canvas:自然语言构建交互式数据看板
  • CI/CD AI Agent 部署前需加人工审批门
  • MCP + RSS 目录:让 AI 工具获取领域最新信息
  • Agent工具调用200 OK背后的谎言:完成所有权问题
  • Google Sheets Canvas功能详解:打造互动数据看板
  • DeepSeek V4 Pro正式版发布,Agent框架Harness开源,API涨价
  • GPU 数值格式详解:FP32/BF16/FP8/FP4 交互式理解指南
  • 长时 Agent 循环如何设计记忆机制
  • 深度体验DeepSeek Harness:涨价也在情理之中
  • AWS AgentCore:统一监控多云/本地AI Agent
  • DFlash speculative decoding 测评:tokens/s 指标可能误导
  • Claude文本水印技术原理解析
  • 为什么AI demo便宜、上线后成本却翻10倍
  • 用 Bedrock AgentCore Browser Tool 自动化遗留 Web 系统
  • Liquid AI 发布 3B 端侧视觉语言模型
  • AI 编程 Agent 通过测试也可能做出架构错误决策
  • 基于 Bedrock AgentCore 构建 M&A 尽职调查多智能体系统
  • Token降价90%但我的AI账单没降:Jevons悖论在起作用
  • 我的Agent替我做营销:我只负责点批准
  • 文本 AI 水印容易被移除,技术局限性分析
  • 已加载 51 / 9240
8.0
热点
AI SCORE
技术实践2026-08-14 01:44

测试套件绕过隔离写入生产数据库的真实事故复盘

dev.to · AI#DevOps#测试#安全
Editor brief · 编辑速览

pytest setup_module 在 fixture 初始化前执行,导致两个测试文件绕过隔离直写生产库;更棘手的是备份数据本身已混入测试 fixture,审计结果不可信。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

五天前,我们将 Ekurhive(我们的 AI Agent 信任网络)向外部节点开放。本周,在对测试套件进行常规维护时,我们发现了一些想坦诚公开的事情。

我们的一部分 pytest 测试文件使用了 setup_module(),这是一个在文件内任何 fixture 之前运行的 pytest 钩子——包括我们先前编写的、用于隔离测试与生产环境的隔离 fixture。在一次验证运行中,这个漏洞让两个测试文件直接写入了我们的实时数据库:它们建立了连接、运行了信任重计算,并重置了真实节点上的信任分数。

我们是在做完整审计时发现的,不是因为任何告警。没有崩溃。服务全程正常运行。这恰恰是值得写出来的原因——这类 bug 天生是静默的。

真正查看时发现了什么

调查走得比我们预期的更远。从 incident 前的备份恢复本应是解决方案——但当我们检查恢复内容而不只是行数时,发现我们以为拥有的"真实"历史活动( relay 历史、信任结果)本身就是测试 fixture,是几周内累积起来的,其中一些来自同一个 bug 的更早变体,甚至回溯到更久之前。我们最早封闭里程碑中真正原始的 relay 历史已经丢失,从我们拥有的任何备份中都无法恢复。

所以我们没有恢复被污染的数据然后声称修复了,而是彻底清空。Ekurhive 的活动表现在有意归零。从此刻起的每一个信任分数、每一条连接、每一次 relay 都是真实的。

修复测试代码关闭了具体的 bug,但没有关闭这类 bug——任何未来有类似顺序问题的测试都可能再次造成同样的问题。因此我们添加了第二个独立的防护层,不依赖于测试代码的正确性:

  • 一个专用的 Postgres 角色给测试进程使用,对生产数据库没有任何授权——不是只读、不是受限,而是根本没有 CONNECT 权限。通过实时负测试验证:用那个角色连接生产会返回 permission denied,直接来自数据库引擎,在任何应用代码运行之前。

  • 一个包装脚本,在 Python 启动之前就将测试数据库凭证强制注入进程环境,作为第二条独立的防线。

两者都不依赖于记得写一个正确的 fixture。这才是关键。

为什么我们要公开而不是悄悄修复

Ekurhive 的全部前提是:信任必须从真实结果中赢得,而不是声称。这个标准必须同样适用于我们。如果我们将此事隐藏,网络上的信任分数就只是我们讲的一个故事,而不是你可以验证的事实。

我们仍然对外部 Agent 开放——流程和之前一样:请求邀请、提交 Node Card、根据真实标准评估。如果你运行一个 Agent 并想看看一个有实际数据库层问责制的信任网络如何运作,从这里开始。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
Gemini 3.7 Flash 发布: 编程/Agent 能力大幅提升,每百万 Token 0.75 美元
下一篇
AI 生成的认证中间件: undefined === undefined 导致认证绕过