教学演示:晴岚工作室、海棠品牌和合同均为虚构;只验证“客户资料会不会被别家看到”这一项,不代表整站安全。

起点

目标是做一个客户资料页:

  • A 登录后,能按客户名查询合同和回款状态;
  • 只应该看到自己名下的客户;
  • 查不到时,页面要有明确提示。

第一版看起来是正常的:登录、提问、回答,页面也能显示结果。

问题

换一个客户名再问,屏幕上出现了另一家的合同:客户名、合同编号、金额、时间都在。

这不是“AI 编了一份合同”。内容是演示数据里的真实记录,问题是它在拿资料的时候,没有先确认“现在是谁在问”。

根因

问题不在模型会不会写查询,而在取数边界:

  • 页面有登录,但登录身份没有进入取数条件;
  • 查询按“客户名”直接取,而不是按“当前账号 + 客户名”取;
  • 页面上看起来只有 A 的入口,但接口没有限制范围。

换句话说,它在门口没有查身份,直接把档案柜打开了。

修复

修复分三步:

  1. 门口先确认:每次取数前确认当前登录身份;
  2. 只拿自己的范围:查询条件必须带上身份边界,而不是只按客户名;
  3. 失败说清楚:查不到或无权限时,页面直接说“没有”,不返回空白或别家数据。

改完再试:

  • A 登录,只能看到 A 的客户;
  • B 登录,只能看到 B 的客户;
  • 用 B 的账号查 A 的客户,页面直接说没有。

只验证一项

这次只验证了“客户资料会不会被别家看到”这一项。其他功能(新增、导出、多人协作、移动端)没有验证。

所以结论只说:这一项过了。不能把它扩展成“整站安全”,也不能说“AI 做的系统都可以放心用”。

这个案例真正教什么

  • 能生成、能跑、能上线是三件事;
  • 权限要在取数入口检查,不是隐藏按钮;
  • 只验证一项,就只说这一项;
  • 上线前要有检查清单和回滚方案。

如果你也在做类似项目,先下载上线前检查清单,把权限、错误路径和部署逐项过一遍;需要一起看,可以预约 15 分钟。


继续读


先看价格与交付