Workflow
RLS)
icon
搜索文档
他用AI三天做了个网站,结果被黑了两次,氛围编码大翻车
36氪· 2025-06-03 20:31
氛围编码(Vibe Coding)的兴起与应用 - OpenAI前创始成员Andrej Karpathy提出"氛围编码"概念,即通过AI工具(如Cursor、ChatGPT)实现"你说想法,AI写代码"的快速开发模式 [1] - 该模式允许非编程人员快速构建应用或小游戏,吸引大量开发者尝试 [1] - 开发者Harley Kimball使用AI工具在三天内完成聚合网站开发并上线,前端通过Cursor和Lovable搭建,后端使用Supabase云数据库服务 [3] 快速开发项目的技术实现 - 网站核心功能为聚合HackerOne、Bugcrowd等平台的公开资料,提供白帽黑客档案集中查询服务 [2] - 数据采集通过独立自动化脚本完成,与前端分离设计,采用Supabase Auth进行用户认证 [4] - 初始设计包含用户自助注册功能,后因权限管理风险改为只读数据视图 [4] 安全漏洞事件分析 第一次漏洞:数据库权限绕过 - 用户邮箱信息因默认配置被返回前端,存在泄露风险 [5] - 采用PostgreSQL视图排除邮箱字段,但因未启用SECURITY INVOKER或RLS配置,视图继承管理员权限导致行级安全策略失效 [6] - 攻击者可绕过前端直接插入/修改数据库记录,漏洞由研究员@Goofygiraffe06发现并报告 [6] 第二次漏洞:后端认证服务未关闭 - 前端隐藏注册入口但Supabase Auth服务仍处于激活状态,攻击者可通过API直接注册账号 [9] - 新账号可添加数据(不可修改/删除),权限控制未完全锁死,漏洞由研究员@Kr1shna4garwal发现 [8][9] - 最终通过彻底关闭Supabase Auth注册功能修复漏洞 [9] 技术架构的潜在风险 - PostgreSQL视图默认以创建者权限运行,需显式配置SECURITY INVOKER或RLS策略才能实现行级安全 [10] - Supabase等现成后端服务若未完全关闭未用功能(如Auth),即使前端无入口仍存在API暴露风险 [9][10] 行业启示 - AI辅助开发(氛围编码)加速项目落地,但默认配置常忽略安全环节,需额外关注权限管理与威胁建模 [10] - 使用Supabase+PostgreSQL组合时,开发者需深入理解权限模型复杂性,避免视图和RLS配置失误 [10] - 涉及敏感数据的项目需严格审查安全配置,快速上线不应牺牲基础安全流程 [11]