web与web服务器安全(三)

24 阅读3分钟

【网安学习】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.准备一个登录的页面 图片.png
    2.准备另一个获取数据的php页面

图片.png
3.开启phpStudy

图片.png
4.打开浏览器:在搜索框输入本机IP/准备一个登录的页面的文件地址 图片.png
5.填姓名和年龄并提交,然后便会跳转到获取数据的php页面 图片.png

2.4 防御加固

  • 代码层修复:
    添加 required 属性确保必填字段
    未修复:

图片.png
已修复:

图片.png

三、个人学习心得

3.1 学习过程复盘

  • 投入时长 & 节奏:学习时长足够,难点卡壳时间长。
  • 学习方法:记笔记、难点问ai的组合方式

3.2 收获与成长

  • 知识收获:掌握新的原理、技术、工具
  • 能力提升:实操能力、排错能力、攻防思维
  • 认知改变:对网安技术的新理解

3.3 不足与改进计划

不足:
  • 未掌握的难点:卡壳的知识点、未复现的场景
  • 学习短板:基础薄弱
  • 时间问题:学习效率低
改进计划:
  • 针对短板的弥补方案:补基础、刷靶场、看源码
  • 这一阶段学习目标:打好基础、提高学习效率、复现更多难点场景
  • 学习方法优化:调整节奏

四、总结

  1. PHP是服务器端脚本语⾔,只在服务器运⾏,是⽹站的后台⼤脑;
  2. ⽹安学PHP的核⼼原因:PHP⽹站占⽐⾼、漏洞多,不懂PHP看不懂漏洞原理;
  3. PHP变量以 $ 开头,字符串拼接⽤ . ,是⽂件上传漏洞的核⼼语法;
  4. 超全局变量 GET/_GET/_POST/$_FILES 是后端接收参数的唯⼀⽅式,是漏洞的⼊⼝;
  5. ⽂件上传分4步,漏洞只出现在PHP的决策环节,核⼼是「⽆过滤」;
  6. 所有漏洞的根源:盲⽬信任⽤户输⼊,没有做过滤校验。