)
Web 安全的核心在后端而后端语言中 PHP 占据了半壁江山。DVWA、SQLi-Labs 等经典靶场都是 PHP 写的不懂 PHP 就看不懂漏洞原理。这一篇从最基础开始PHP 是什么、怎么运行、变量和数组怎么用、GET 和 POST 有什么区别。一、PHP 是什么PHP全称PHP: Hypertext Preprocessor是一种广泛使用的服务器端脚本语言专为 Web 开发设计。核心工作模式客户端浏览器发起请求服务器端执行 PHP 代码生成 HTML 响应并返回给客户端。关键特征用户仅能获取运行后的结果HTML 页面无法查看 PHP 核心源代码。这与 HTML/CSS/JavaScript 等前端语言不同 —— 前端代码在浏览器端执行用户可以直接查看源码而 PHP 在服务器端执行用户看到的只是执行后的输出。二、PHP 运行环境2.1 为什么本地双击 .php 文件无效双击电脑上的.php文件会发生什么不是执行而是用记事本打开显示源代码。原因很简单PHP 代码在本地电脑上没有服务器环境无法执行只会以文本形式在编辑器中打开。PHP 必须在 Web 服务器Apache/Nginx环境中才能被解析执行。2.2 使用 phpstudy 集成环境推荐使用phpstudy等集成环境一键安装 Apache/Nginx MySQL PHP省去手动配置的麻烦。搭建步骤访问 phpstudy 官网下载并安装安装后启动 Apache 或 Nginx 服务找到网站根目录Windows 默认为C:\phpstudy\WWWLinux 为/var/www在根目录新建 PHP 文件写入代码浏览器访问http://localhost/文件名.php查看运行结果为什么要放到 WWW 目录下这是 Web 服务器配置的默认根目录只有该目录下的文件才会被 PHP 解析器识别并对外提供访问服务。三、PHP 基础语法3.1 PHP 标签与输出PHP 代码必须写在?php ?标签内\?php echo Hello, 世界; ?常用输出方式方式说明echo输出一个或多个字符串最常用print输出一个字符串返回值始终为 1var_dump()输出变量的类型与值适用于调试3.2 变量变量是用来存放数据的容器。PHP 变量有三大核心规则规则说明示例必须以$符号开头所有变量名前必须加美元符$username、$age严格区分大小写$name和$Name是两个完全不同的变量$name ! $Name弱类型语言无需声明类型PHP 根据赋值自动判断$age 20整数、$name 小明字符串命名风格推荐使用蛇形命名法snake_case如$user_name、$file_path。3.3 数据类型PHP 是弱类型语言常见数据类型包括类型说明示例整数int整数数值$age 18字符串string文本数据$name 张三布尔值bool真或假$is_admin true数组array存放多个数据的复合类型$arr [a, b]3.4 字符串操作字符串拼接PHP 使用.运算符拼接字符串注意不是\$dir ./uploads/; \$file shell.php; \$full\_path \$dir . \$file; // 结果./uploads/shell.php四、数组Array数组是一种可以存放多个数据的复合类型是有序映射键 值。PHP 数组分为三种4.1 索引数组键默认是从 0 开始的整数\$students \[小明, 小红, 小刚]; echo \$students\[0]; // 输出小明4.2 关联数组键可以自定义为字符串或数字\$user \[name 李四, age 30, add 北京]; echo \$user\[name]; // 输出李四4.3 多维数组数组中的元素也是数组\$users \[ #x20; \[name 张三, age 20], #x20; \[name 李四, age 25] ]; echo \$users\[1]\[name]; // 输出李四五、GET 和 POST 提交方式Web 交互中客户端向服务器传递数据主要通过 GET 和 POST 两种方式。对比维度GET 请求POST 请求数据位置参数附加在 URL 后面对用户完全可见数据在请求体中传输URL 中不可见长度限制受 URL 长度限制通常 2KB-8KB不适合大量数据可传输大量数据支持文件上传理论上无大小限制适用场景数据查询、页面跳转等非敏感操作如百度搜索登录、注册、文件上传等敏感或大数据量操作安全性参数在 URL 中可见相对不安全参数在请求体中相对安全典型应用百度搜索使用 GET 传递搜索关键词参数在 URL 中可见微信登录使用 POST 传递账号密码参数在请求体中隐藏文件上传 100% 用 POST因为需要传输大量数据在 PHP 中通过$_GET和$_POST超全局变量获取对应方式提交的数据。六、知识小结知识模块核心内容一句话速记PHP 本质服务器端脚本语言用户看不到源码后端执行前端看结果运行环境phpstudy 集成环境文件放 WWW 目录双击无效要走服务器PHP 标签代码写在?php ?内标签包裹输出echo 最常用var_dump 用于调试echo 输出变量$ 开头、区分大小写、弱类型三规则字符串拼接用.运算符不是点号拼接索引数组键从 0 开始的整数$arr[0]关联数组自定义字符串键名$arr[“key”]多维数组数组嵌套数组$arr[0][“key”]GETURL 传参可见适合查询查东西用 GETPOST请求体传参隐藏适合登录上传传数据用 POSTPHP 基础语法是后续 Web 漏洞学习的前提。理解了变量、数组和 GET/POST 数据传递才能看懂 SQL 注入中参数如何进入查询、文件上传中文件名如何被处理、XSS 中输出如何被渲染。下一篇将进入运算符与流程控制。