PHP8 安全开发四大基线实战:口令哈希、SQL 注入防护、XSS 转义与 CSRF 校验全实测
Web 安全的第一课不是攻是防:口令怎么存、SQL 怎么写、输出怎么转义、表单怎么防伪造——这四件事做错任何一件,系统就是裸奔。本文用 PHP 8.4.1(包内内置 NTS 运行时,解压即跑)把四大安全基线全部真实实现并留档验证。
一、四大基线
| 基线 | 做法 | 反面教材 |
|---|---|---|
| 口令存储 | password_hash (bcrypt) | md5/明文 |
| SQL 注入 | 预处理语句参数绑定 | 字符串拼接 SQL |
| XSS | 输出 htmlspecialchars 转义 | 直接 echo 用户输入 |
| CSRF | Session Token 表单校验 | 无令牌直收 POST |
二、两条最关键的代码纪律
// 口令:永不自制哈希算法,password_hash 一行到位$hash=password_hash($pwd,PASSWORD_DEFAULT);// SQL:永不拼接用户输入,预处理占位符是底线$st=$pdo->prepare("SELECT * FROM users WHERE email = ?");$st->execute([$email]);XSS 的要点是「输出时转义」而不是「输入时过滤」——同一个输入在不同上下文(HTML/属性/JS)需要不同转义;CSRF 的本质是证明「请求来自本站表单」,Session Token 对照一次即可。套件内的单文件路由演示应用覆盖全部四个端点,自动化测试脚本留存了真实响应,跑一遍php\php.exe run_tests.py就能看到每条基线的攻防对照。
📦 本文对应的完整安全套件(运行时+实测脚本)已整理上传:点击查看资源包