【网安学习】Web后端PHP基础安全知识点笔记与心得
一、学习背景与目标
- 学习背景:0基础php编程
- 目标:掌握基本的php基础及三个超全局变量
二、核心知识点笔记
2.1 基础概念
- PHP官方定义:PHP(全称:PHP: Hypertext Preprocessor,超⽂本预处理器)是⼀⻔开源的服务器端脚本编程语⾔,专⻔⽤于开发Web⽹站的后端逻辑。
- 通俗化解释:就是为了服务器端而开发的一门语言。
- 核心特征:
1.服务器端:只在服务器上运行,客户端看不到源代码
2.脚本语言:无需编译,直接解析执⾏,运行效率高
3.Web专属:专为网站开发和处理后台业务逻辑
2.2 原理拆解
-
php核心基础语法关键技术点:
1.php变量:
i.变量的定义:PHP中,变量是⽤来存储数据的容器。
ii.变量的核心规则:
(1)变量必须以$开头
(2)变量名区分大小写
(3)变量可以直接赋值
2.php字符串拼接:
拼接规则:两个字符串以英文.完成。
3.php超全局变量:
超全局变量的定义:在PHP代码的任何位置都可以直接使⽤,不需要提前定义
ii.核心特点:
(1)所有超全局变量都是⼤写的数组形式;
(2)专⻔⽤来接收「⽤户从浏览器传递给服务器的数据」;
(3)是后端接收前端参数的核⼼⽅式,也是所有Web漏洞的「数据⼊⼝」。
iii.必学的3个超全局变量:
第一:$_FILES超全局变量————文件上传专属
第二:$_GET超全局变量————接收GET请求传递的参数
第三:$_POST超全局变量————接收POST请求传递的参数 -
文件上传流程:
步骤1:用户选文件填快递单
步骤2:浏览器打包>用POST请求发货
步骤3:服务器接收存入临时仓库
步骤4:PHP代码做最终决策>完成上传(核心核心核心)文件上传核心函数:move_uploaded_file()
2.3 超全局变量实操复现
- 环境准备:Trae、phpStudy、浏览器
- 操作步骤:
1.准备一个登录的页面
2.准备另一个获取数据的php页面
3.开启phpStudy
4.打开浏览器:在搜索框输入本机IP/准备一个登录的页面的文件地址
5.填姓名和年龄并提交,然后便会跳转到获取数据的php页面
2.4 防御加固
- 代码层修复:
添加 required 属性确保必填字段
未修复:
已修复:
三、个人学习心得
3.1 学习过程复盘
- 投入时长 & 节奏:学习时长足够,难点卡壳时间长。
- 学习方法:记笔记、难点问ai的组合方式
3.2 收获与成长
- 知识收获:掌握新的原理、技术、工具
- 能力提升:实操能力、排错能力、攻防思维
- 认知改变:对网安技术的新理解
3.3 不足与改进计划
不足:
- 未掌握的难点:卡壳的知识点、未复现的场景
- 学习短板:基础薄弱
- 时间问题:学习效率低
改进计划:
- 针对短板的弥补方案:补基础、刷靶场、看源码
- 这一阶段学习目标:打好基础、提高学习效率、复现更多难点场景
- 学习方法优化:调整节奏
四、总结
- PHP是服务器端脚本语⾔,只在服务器运⾏,是⽹站的后台⼤脑;
- ⽹安学PHP的核⼼原因:PHP⽹站占⽐⾼、漏洞多,不懂PHP看不懂漏洞原理;
- PHP变量以 $ 开头,字符串拼接⽤ . ,是⽂件上传漏洞的核⼼语法;
- 超全局变量 _POST/$_FILES 是后端接收参数的唯⼀⽅式,是漏洞的⼊⼝;
- ⽂件上传分4步,漏洞只出现在PHP的决策环节,核⼼是「⽆过滤」;
- 所有漏洞的根源:盲⽬信任⽤户输⼊,没有做过滤校验。