PHP与数据库交互 SQL注入漏洞
PHP与数据库交互 & SQL注入漏洞
一、PHP与数据库交互(4步)
- 连库:
mysqli_connect(地址,账号,密码,库名),失败用die终止 - 收参:
$_POST['name']/$_POST['password'](POST更安全) - 执行:拼接SQL →
mysqli_query($conn, $sql) - 判结果:
mysqli_num_rows($result)>0→ 登录成功
二、SQL注入(万能密码)
- 漏洞根源:直接把用户输入拼进SQL,未过滤/转义
- 万能密码原理:
123' or '1'='1- 闭合单引号
- 加恒真条件
- 注释多余内容
- 篡改后SQL:
SELECT * FROM users WHERE name='xxx' AND password='123' or '1'='1' - 结果:免密登录,返回第一条用户数据
三、核心总结
- 交互4步:连库→收参→执行→判结果
- 注入根源:直接拼接用户输入
- 万能密码:让WHERE条件恒成立,绕过验证
要不要我帮你整理成一页可打印的速记版?
