注意:
中华人民共和国网络安全法
任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、 窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、 干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的 程序、工具:明知他人从事危害网络安全的活动的,不得为其提供技术 支持、广告推广、支付结算等帮助。
一、PHP 与数据库交互(登录核心流程)
- 交互四步走
- 建立连接:用
mysqli_connect连接数据库,失败则终止程序 - 接收输入:通过
$_POST获取账号密码,比 GET 更安全 - 执行 SQL:拼接查询语句
SELECT * FROM users WHERE name='$name' AND password='$pwd'并执行 - 处理结果:判断是否查到数据,返回登录成功 / 失败
- 建立连接:用
- 完整实现提供了可直接运行的 PHP 登录页面代码,包含数据库配置、表单提交、SQL 执行与结果反馈全流程。
二、数据库基础(SQL 核心)
- 基础操作
- 库表创建:
CREATE DATABASE/TABLE建库与用户表(含 id、name、password 等字段) - 数据 CRUD:新增
INSERT、查询SELECT、修改UPDATE、删除DELETE - 高级查询:
UNION合并查询结果、ORDER BY排序
- 库表创建:
- SQL 分类DDL(定义)、DML(操纵)、DQL(查询)、DCL(控制)四大类。
三、SQL 注入漏洞(万能密码)
- 漏洞根源 直接将用户输入拼接进 SQL 语句,未过滤单引号、OR、# 等特殊字符,未做转义处理,导致 SQL 逻辑被篡改。
- 万能密码原理 输入
' or '1'='1实现三步攻击:- 闭合原有 SQL 单引号
- 添加恒成立条件
1=1 - 忽略后续语法错误
- 攻击效果 SQL 条件永久为真,数据库返回所有用户数据,绕过密码验证直接登录。
四、核心总结
- PHP 与数据库交互固定四步,登录优先用 POST 方式
- SQL 注入的本质是无过滤的 SQL 直接拼接
- 万能密码是通过恶意输入让查询条件恒成立,实现免密登录