SaaS安全检查清单:预防灾难的5项检查
写给非技术创始人的SaaS安全检查清单:5项检查可预防99%的安全灾难,并附一段复制即用的审计提示词,一次就能把全部五项检查跑完,不用逐项手动排查。
一份包含五项检查的SaaS安全检查清单,能预防99%的SaaS安全灾难:数据隔离、安全的密码、输入验证、权限强制执行和输入净化。你不需要成为安全专家来运行它们。你只需要知道这五项检查的存在,问你的AI助手每一项是否已实现,并在缺失之处要求修复。这是完整的清单——每项检查的测试方法、修复办法,以及一次审计全部五项的复制即用提示词。
这里有一个向你兜售“AI一个周末就能造出你的应用”的人从不提的事实:如果你从不要求安全,AI会很乐意给你造出一个不安全的应用。这五项检查,正是业余应用与专业应用的分水岭——而且一个安全漏洞就能在你的生意起步之前将其摧毁。
5项检查的SaaS安全检查清单
| # | 检查项 | 要问的问题 | 合格的答案 |
|---|---|---|---|
| 1 | 数据隔离 | 用户能看到彼此的数据吗? | 不能——即使代码有bug,数据库也会拦住 |
| 2 | 密码 | 密码是如何存储的? | 由Supabase Auth处理,或做了不可逆的哈希 |
| 3 | 输入验证 | 坏数据能进来吗? | 不能——必填项、长度、格式和范围都经过检查 |
| 4 | 权限 | 用户能做不该做的事吗? | 不能——每次操作之前都会检查权限 |
| 5 | XSS防护 | 用户输入可以安全地显示吗? | 可以——用户输入的任何内容在显示前都经过净化 |
每项检查都遵循同样的模式:运行测试,如果不通过,就把修复提示词粘贴到你的AI工具里。我们逐项来看。
检查1:用户能看到彼此的数据吗?
测试简单得近乎残酷。以客户A的身份登录,修改网址或随意点击,看看能不能访问到客户B的数据。如果能,你就有一个巨大的问题——那种会变成GDPR违规、然后是诉讼、然后是生意倒闭的问题。
解决办法是行级安全:规则存在于数据库本身之中,所以即使你的代码里有bug,数据库也会阻止访问。告诉你的AI:“添加行级安全,让用户只能看到自己组织的数据。”可以把它想成给每一扇公寓门都装上锁,而不是相信没人会走错门。这项检查值得单独一篇文章,而且确实有——写给非技术创始人的行级安全详解对此有完整的讲解。
检查2:你的密码真的安全吗?
问你的AI:“数据库里的密码是如何存储的?”有两种糟糕的答案。“明文”是一场灾难——永远不可接受。“加密”听起来安全,其实不然,因为加密是可逆的。好的答案是“用bcrypt或scrypt做了哈希”(不可逆),或者最好的是“由Supabase Auth处理”。
这里真正的修复是一个决定,而不是代码:不要自己做密码系统。Supabase Auth处理密码哈希、密码重置、邮箱验证、会话管理和多因素认证——这些都是专业安全团队已经解决了的问题。自己做一套,就像把所有密码写在纸上放在前门,而不是装一套像样的安防系统。一旦密码泄露,每个账号都会沦陷,用户再也不会信任你。
本书The Solopreneur RevolutionLuis Gonçalves 讲述如何在不辞职的情况下用 AI 打造独立创业者事业。获取本书 →检查3和4:坏数据与失效的权限
检查3——坏数据能进来吗?试着创建这样的记录:必填项为空、名称长达10,000个字符、邮箱格式无效,或者只该为正数的地方填了负数。如果你的应用接受了,说明你没有验证——坏数据会以古怪的方式搞坏功能,而且你的用户会比你先发现。修复提示词:“添加验证,检查必填项已填写、文本字段有最大长度、邮箱格式有效、数字在可接受范围内、日期有效。”
检查4——用户能做不该做的事吗?以普通用户而不是管理员的身份登录,尝试删除其他用户、更改订阅设置,或访问管理页面。如果能,说明你的权限系统是坏的——相当于给每位住户一把能开所有公寓的万能钥匙。修复提示词:“添加权限检查:普通用户只能编辑自己的内容,只有管理员能删除用户,只有所有者能更改订阅——并在允许操作之前检查权限。”没有这个,一个普通用户就能删光一切,而你要花一周时间给愤怒的客户办理退款。
检查5:用户输入可以安全地显示吗?
这一项最阴险。问你的AI:“如果用户在文本字段里输入HTML或JavaScript,它会在其他用户的屏幕上执行吗?”如果会,你就有XSS漏洞——你的用户可以互相攻击。用户A把一段脚本放进自己的个人资料名称里;用户B打开了那个资料页;恶意代码在用户B的屏幕上运行并窃取其数据。法律责任,声誉扫地。
修复提示词:“在显示用户输入之前先做净化。移除任何HTML、JavaScript或危险代码。”就像在门口制定规则,规定什么可以带进来——绝不允许带爆炸物。
5分钟安全审计
你不必逐项运行检查。把下面这段粘贴到你的AI工具里,让它去做:
请审计这个应用的安全问题:
1. 用户能看到其他组织的数据吗?(检查行级安全)
2. 密码是如何存储的?(应使用Supabase Auth)
3. 用户输入经过验证了吗?(检查必填项、长度限制、格式验证)
4. 权限得到强制执行了吗?(普通用户能执行管理员操作吗?)
5. 用户输入在显示前经过净化了吗?(检查XSS防护)
对发现的每个问题,说明风险和修复方法。
它会告诉你哪里有问题。修复出问题的地方,从任何涉及数据隔离的问题开始。
更好的做法是,从一开始就把安全融入你提出功能需求的方式里。“给我做一个联系人管理应用”,得到的东西能用但不安全。“给我做一个联系人管理应用,带行级安全、用Supabase Auth处理密码、输入验证、权限检查和净化过的用户输入”,得到的就是默认安全的东西。安全是上线前值得审计的五个维度之一——完整的代码质量审计会为所有这些维度打分。
运行审计。修复出问题的地方。安心入睡。从第一天起就把它做安全——因为在数据泄露之后才补上安全,是你永远不想干的活。
12 周企业职业生涯从来都不是计划申请加入 Solopreneur Accelerator。立即申请 →常见问题
发布SaaS一定要是安全专家吗?
不需要。你只需做到三件事:知道这5项检查的存在,问你的AI助手每一项是否已实现,并在缺失之处要求修复。这些检查涵盖了能预防99%灾难的失误——数据隔离、密码、验证、权限和XSS。
哪项安全检查最重要?
数据隔离。如果客户A能看到客户B的数据,你面对的就是GDPR违规和诉讼——这种失败模式会直接毁掉一门生意。行级安全在数据库层面解决它,所以即使代码有bug,也无法在客户之间泄露数据。
我应该自己做登录和密码系统吗?
不应该。使用Supabase Auth。它处理密码哈希、重置、邮箱验证、会话管理和多因素认证——也就是自制认证最容易出错的所有地方。自行存储密码,正是“明文密码”带着你产品名称登上新闻头条的原因。
我应该什么时候运行安全审计?
在你的第一位真实用户接触应用之前,以及每当你添加存储或显示用户数据的功能时再运行一次。有了上面的复制即用提示词,审计只需五分钟——在你的任何一版路线图里,跳过它都不是明智的取舍。
你到底被困得有多深?
完成职场窒息指数——这项免费测评告诉你是否已准备好成为独立创业者。