PHP 反序列化在很多人心里是「CTF 才考的东西」,现实里它更常见的形态是:站点的缓存文件被人动过、队列里的任务数据来自外部接口、或者一次 phar:/...
文件包含漏洞在老站里几乎没有绝迹过。原因很简单:早期为了省事,很多项目把「页面切换」写成了 include($_GET['page'] . '.php')...
一、中文网站字体为什么这么慢一个拉丁字体的 woff2 通常只有 20 到 50KB,而一个完整的中文黑体动辄 3 到 8MB。原因很直接:常用汉字有三千...
一、先弄清 .user.ini 到底是什么PHP 的 .user.ini 是自 PHP 5.3 起引入的"用户级配置"机制,作用对象是 CGI / Fas...
一、什么时候该上乐观锁先说结论:乐观锁不是"更好的锁",它只是在冲突概率低的时候,比悲观锁便宜得多的一种做法。判断标准只有两条——同一行数据会不会被两个请...
缓存 key 设计错误是 CDN 上最隐蔽的一类事故:页面功能完全正常,只有少数用户会看到别人的数据,而且从日志里几乎看不出来。这篇文章从一次真实的越权现...
SQL 注入是老话题,但真正把「参数化查询」落到一个老项目里,问题往往不在知不知道,而在于代码里有多少地方在拼接 SQL、有多少个地方用了 ORM 却又开...
Nginx 里 aliash 和 root 长得像,坑却完全不同。这篇文章从一个真实的 404 排查说起,把这两个指令的差异、路径穿越的风险、软链接的解析...