能登录的系统就需要设防

权限、加密、校验和备份,比事后写检讨便宜得多。

安全不是装一扇厚门就结束。只要系统能登录、能上传、能查数据,攻击面就已经存在。大多数事故不来自电影里的破解,而来自弱口令、接口未鉴权和备份从未恢复过。

跨站脚本

页面把不可信的字原样画出来,脚本就会跟着跑。输出要转义,富文本要白名单,Cookie 也要少给脚本可读的机会。

注入

把用户输入拼进 SQL 或命令,等于把解释权交给外人。预编译和参数绑定是默认,不是进阶技巧。

跨站请求

浏览器会自动带上 Cookie。关键动作要有额外令牌或二次确认,避免用户在另一个站点被借刀。

越权

只藏按钮不够。改一条 ID 就能看见别人的订单,是接口没有做对象级校验。每一个写操作都要问:这是不是你的。