缓存 key 设计错误是 CDN 上最隐蔽的一类事故:页面功能完全正常,只有少数用户会看到别人的数据,而且从日志里几乎看不出来。这篇文章从一次真实的越权现...
SQL 注入是老话题,但真正把「参数化查询」落到一个老项目里,问题往往不在知不知道,而在于代码里有多少地方在拼接 SQL、有多少个地方用了 ORM 却又开...
Nginx 里 aliash 和 root 长得像,坑却完全不同。这篇文章从一个真实的 404 排查说起,把这两个指令的差异、路径穿越的风险、软链接的解析...
一、为什么"改表结构"是最容易出事的一次上线写代码出 bug,最坏的结果是一个页面报错或者某个功能失灵,回滚一次发版就能恢复。改数据库表结构不一样:代码可...
一、CORS 到底是什么在保护什么很多站长对 CORS(跨域资源共享)的理解停留在"报错就加个 Access-Control-Allow-Origin: ...
一、命令注入为什么比 SQL 注入更致命个人站长维护的站点里,大概有一半以上的项目最终都会遇到一个需求:执行系统命令。备份数据库要调 mysqldump,...
事务隔离级别是那种「平时完全不用管、出事时完全看不懂」的知识。绝大多数站长写代码时只会用到 BEGIN 和 COMMIT,从没想过中间发生了什么;直到某天...
IDOR(Insecure Direct Object Reference,不安全的直接对象引用)在国内讨论得不多,但在自建站里它几乎是最常见、也最容易上...