【网络安全】二、入门篇:HTTP 协议进阶 ——GET/POST 常用传参手段详解

news/2025/10/13 12:50:18/文章来源:https://www.cnblogs.com/ljbguanli/p/19138213

【网络安全】二、入门篇:HTTP 协议进阶 ——GET/POST 常用传参手段详解

在理解 GET/POST 核心区别后,需掌握不同场景下的传参格式(参数如何组织、传递),这是后续漏洞测试(如 SQL 注入、命令注入)的基础。以下传参方法均基于本地搭建的测试网站。

一、本地自定义测试网站搭建步骤(PHPStudy + 简单 PHP 页面)

以下用 PHPStudy 搭建测试环境:​

步骤 1:安装 PHPStudy 并启动服务​

步骤 2:创建测试文件夹与核心页面​

  • 在根目录下新建文件夹cmd_test(用于存放所有测试文件);​
  • 在cmd_test中创建以下 6 个核心 PHP 文件:

(1)get_query.php(GET-Query String 传参)

<?php
// 接收GET的Query String参数(?page=2&size=10)
$page = $_GET['page'] ?? '1'; // 若参数不存在,默认值1
$size = $_GET['size'] ?? '5';
echo "GET-Query String传参测试:<br>";echo "当前页码:{$page},每页条数:{$size}";?>

(2)get_path.php(GET - 路径参数传参)

<?php
// 解析URL路径(如/user/1001/zhangsan)
$url = $_SERVER['REQUEST_URI']; // 获取当前URL路径(如/cmd_test/get_path.php/user/1001/zhangsan)
$path = explode('/', $url); // 按“/”分割路径为数组
// 提取路径中的参数(数组索引6和7对应user和1001,需根据实际路径调整)
$type = $path[3] ?? 'unknown'; // 第4段(索引3):参数类型(如user)
$id = $path[4] ?? '0'; // 第5段(索引4):用户ID
$name = $path[5] ?? '匿名用户'; // 第6段(索引5):用户名
echo "GET-路径参数传参测试:<br>";echo "参数类型:{$type},用户ID:{$id},用户名:{$name}";?>

(3)post_form.php(POST-application/x-www-form-urlencoded)

<?php
// 接收POST表单参数(application/x-www-form-urlencoded)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
echo "POST-表单传参测试(application/x-www-form-urlencoded):<br>";echo "用户名:{$username},密码:{$password}";return;}?><!-- HTML表单,默认Content-Type为application/x-www-form-urlencoded --><form method="post" action="">用户名:<input type="text" name="username"><br>密码:<input type="password" name="password"><br><button type="submit">提交</button></form>

(4)post_upload.php(POST-multipart/form-data 文件上传)

<?php
// 接收POST文件上传参数(multipart/form-data)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$desc = $_POST['desc'] ?? ''; // 文本参数
$file = $_FILES['file'] ?? []; // 文件参数($_FILES是PHP接收文件的专用数组)
// 检查文件是否上传成功
if ($file['error'] === UPLOAD_ERR_OK) {
$uploadDir = './uploads/'; // 上传文件保存目录
if (!is_dir($uploadDir)) mkdir($uploadDir); // 目录不存在则创建
$savePath = $uploadDir . $file['name']; // 保存路径(原文件名)
move_uploaded_file($file['tmp_name'], $savePath); // 移动临时文件到保存路径
echo "POST-文件上传测试(multipart/form-data):<br>";echo "文件描述:{$desc}<br>";echo "文件名:{$file['name']}<br>";echo "文件大小:{$file['size']}字节<br>";echo "文件保存路径:{$savePath}";} else {echo "文件上传失败!错误码:{$file['error']}";}return;}?><!-- 文件上传表单,必须指定enctype="multipart/form-data" --><form method="post" action="" enctype="multipart/form-data">文件描述:<input type="text" name="desc"><br>选择文件:<input type="file" name="file"><br><button type="submit">上传</button></form>

(5)post_json.php(POST-application/json 传参)

<?php
// 接收POST-JSON参数(application/json,需手动读取请求体)
$contentType = $_SERVER['CONTENT_TYPE'] ?? '';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && strpos($contentType, 'application/json') !== false) {
// 读取请求体中的JSON字符串($_POST无法直接接收JSON,需用php://input)
$json = file_get_contents('php://input');
$data = json_decode($json, true); // 解析为关联数组(true表示返回数组而非对象)
echo "POST-JSON传参测试(application/json):<br>";echo "接收的JSON数据:" . json_encode($data, JSON_UNESCAPED_UNICODE); // 格式化输出} else {echo "请用POST方法并设置Content-Type: application/json";}?>

(6)cmd_test_base.php(基础页面,用于后续 CMD 命令测试)

<?php
// 基础页面,后续命令注入测试会基于此修改
echo "本地测试网站基础页<br>";echo "当前页面路径:" . __FILE__;?>

步骤 3:验证环境是否正常​

二、GET 请求:3 种常用传参方式

GET 传参的核心是 “参数通过 URL 传递”,但根据场景不同,参数位置和格式有差异,常见 3 种方式:​

1. 方式 1:Query String 参数(最通用,键值对拼 URL)​

本地搭建测试页get_query.php,访问:​

http://localhost/cmd_test/get_query.php?page=2&size=10

页面会输出当前页码:2,每页条数:10—— 参数被正确接收;​

  • 特殊字符处理:若参数含空格 / 中文(如name=张三),浏览器会自动 URL 编码为name=%E5%BC%A0%E4%B8%89(可在 Chrome 开发者工具「Network」中查看编码后参数)。​

2. 方式 2:路径参数(RESTful API 常用,参数嵌 URL 路径)​

  • 格式:URL/参数1/参数2(无?和&,参数作为 URL 的一部分)​
  • 场景:API 接口(如用户信息查询、资源获取)​
  • 实操案例(本地测试):​

本地搭建测试页get_path.php,访问:​

http://localhost/cmd_test/get_path.php/user/1001/zhangsan​

页面会输出用户ID:1001,用户名:zhangsan—— 通过解析 URL 路径获取参数;​

  • 工具测试:用 Postman 访问上述 URL,在「Params」中无需额外设置,直接通过路径传递参数。​

3. 方式 3:URL 片段(Hash 参数,仅前端使用,不传给服务器)​

  • 格式:URL#参数(#后的内容称为 Hash,仅浏览器前端 JS 可读取,服务器接收不到)​
  • 场景:前端页面锚点、单页应用(SPA)路由(如 Vue/React 路由)​
  • 注意:此方式不用于服务器端参数传递,仅前端使用(如http://localhost/page.html#tab=1,服务器只能收到page.html,收不到tab=1)。

三、POST 请求:4 种常用传参方式

POST 传参的核心是 “参数在请求体中”,不同场景对应不同的Content-Type(请求头中标识参数格式),服务器需按对应格式解析参数,常见 4 种方式:

1. 方式 1:application/x-www-form-urlencoded(表单默认格式)

  • 格式:key1=value1&key2=value2(与 GET 的 Query String 格式一致,但在请求体中)
  • 场景:普通表单提交(登录、注册、简单数据提交)
  • 实操案例(本地测试):

本地搭建测试页post_form.php(含 HTML 表单);
打开页面(http://localhost/cmd_test/post_form.php),输入 “用户名:admin,密码:123456”,点击提交;
用开发者工具「Network」查看请求:

「Request Method」为 POST;
「Content-Type」为application/x-www-form-urlencoded;
「Form Data」中显示username=admin&password=123456

2. 方式 2:multipart/form-data(文件上传专用格式)

  • 格式:请求体按 “边界” 分割参数,支持文本 + 文件混合传递
  • 场景:文件上传(头像、附件、图片)
  • 实操案例(本地测试):

本地搭建测试页post_upload.php(http://localhost/cmd_test/post_upload.php)(含文件上传表单);
选择一张图片(如test.png),输入 “文件描述:我的截图”,点击上传;
抓包查看请求:

「Content-Type」为multipart/form-data; boundary=----WebKitFormBoundaryxxxx(boundary是参数分割标识);
「Form Data」中分为两部分:desc=我的截图(文本参数)和file=test.png(文件参数,含文件二进制数据);
页面会显示 “文件上传成功!保存路径:./uploads/test.png”。

3. 方式 3:application/json(API 接口主流格式)

  • 格式:JSON 字符串({“key1”:“value1”,“key2”:“value2”}),支持嵌套结构
  • 场景:前后端分离项目(Vue/React 调用 API)、复杂数据提交(如订单信息)
  • 实操案例(用 Postman 测试):

本地搭建测试页post_json.php(支持 JSON 解析)(http://localhost/cmd_test/post_json.php);
打开 Postman,新建 POST 请求,URL 为http://localhost/cmd_test/post_json.php;

「Headers」中添加Content-Type: application/json;
「Body」选择「raw」→「JSON」,输入:
{
"user": {
"id": 1001,
"name": "张三"
},
"age": 25
}

点击「Send」,响应结果显示接收的JSON数据:{“user”:{“id”:1001,“name”:“张三”},“age”:25}—— 参数被正确解析。

4. 方式 4:text/plain(纯文本格式,较少用)

  • 格式:无固定结构,纯文本字符串(如直接传 “hello world”)
  • 场景:简单文本传递(如日志上报、纯文本接口)
  • 实操:用 Postman 发送 POST 请求,Content-Type设为text/plain,请求体输入 “测试文本”,服务器用file_get_contents(‘php://input’)读取即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/936063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI元人文构想:基础理论框架解析2025年10月13日

AI元人文构想:基础理论框架解析2025年10月13日 一、引言:AI元人文的兴起与变革 人工智能技术的迅猛发展,正推动其角色从执行特定任务的工具,向能与人类深度交互与协同的复杂系统演进。这一演进催生了AI系统设计理念…

2025年10月南通婚纱照最新权威推荐榜:创意摄影与贴心服务完美结合!

2025年10月南通婚纱照最新权威推荐榜:创意摄影与贴心服务完美结合!随着婚庆行业的不断发展,越来越多的新人开始注重婚纱照的质量和个性化。在南通,婚纱摄影市场竞争激烈,各大品牌纷纷推出创新的服务和产品,以满足…

2025年10月安全光栅厂家最新推荐排行榜,超薄/四级/无盲区/红外/光电/小型/冲床/折弯机/机床安全光栅及传感器公司推荐!

2025年10月安全光栅厂家最新推荐排行榜,超薄/四级/无盲区/红外/光电/小型/冲床/折弯机/机床安全光栅及传感器公司推荐!随着工业自动化和智能制造的快速发展,安全光栅在各种机械设备中的应用越来越广泛。为了确保生产…

2025 年吸塑纸卡厂家推荐榜:吸塑热压/牙刷/电池/玩具/牙刷烫银纸卡厂家,聚焦环保与品质,帮企业精准选对合作伙伴

随着消费市场对包装环保性、定制化需求的提升,以及工业产品包装标准化进程加快,吸塑纸卡、彩盒、吊牌等纸张印刷产品已成为日用品、电子产品、玩具等行业的核心配套环节。2025 年,国内纸张印刷市场规模预计持续增长…

2025年10月风机盘管定制厂家最新推荐排行榜:专业定制与优质服务口碑之选

2025年10月风机盘管定制厂家最新推荐排行榜:专业定制与优质服务口碑之选随着建筑行业对室内环境舒适度和能效要求的不断提高,风机盘管作为中央空调系统的重要组成部分,其质量和性能显得尤为重要。为了帮助筛选风机盘…

2025年10月液压阀块厂家最新推荐排行榜,专业生产与品质保障的首选!

2025年10月液压阀块厂家最新推荐排行榜,专业生产与品质保障的首选!随着工业技术的不断进步,液压系统在各个领域的应用越来越广泛。液压阀块作为液压系统中的关键组件,其质量和性能直接影响到整个系统的稳定性和可靠…

2025年10月风机盘管厂家最新推荐榜单,中央空调风机盘管,商用风机盘管,家用风机盘管,优质供货厂家推荐!

2025年10月风机盘管厂家最新推荐榜单:中央空调、商用及家用风机盘管优质供货厂家推荐随着建筑行业的快速发展,风机盘管作为中央空调系统中的重要组成部分,其需求量逐年增加。无论是商用还是家用领域,选择优质的风机…

ubuntu?centos?还是 redhat?Linux 架构选哪个?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年10月微弧氧化厂家最新推荐排行榜,铝合金/镁合金/黑色/钛合金微弧氧化技术加工公司推荐

2025年10月微弧氧化厂家最新推荐排行榜,铝合金/镁合金/黑色/钛合金微弧氧化技术加工公司推荐随着现代工业技术的不断发展,微弧氧化技术在各个领域的应用越来越广泛。微弧氧化技术通过在材料表面形成一层致密的陶瓷膜…

2025年10月新型农机带制造厂家最新推荐榜单,专业生产与技术创新引领行业前沿!

2025年10月新型农机带制造厂家最新推荐榜单,专业生产与技术创新引领行业前沿!随着农业现代化进程的不断推进,农机带作为农业机械的重要组成部分,其质量和性能直接影响到农业生产效率和成本。为了帮助筛选农机带品牌…

2025 年打包带厂家推荐榜:PP/PET/铁皮/轻质打包带厂家,聚焦品质与效率,助力企业优化包装方案

随着制造业升级、物流行业扩张及环保理念深化,包装材料与设备已成为企业保障货物安全、提升生产效率的关键环节。2025 年,国内包装市场规模预计持续增长,但市场中厂商产品质量、技术实力与服务能力差异显著,企业在…

2025年10月七水硫酸锌厂家最新推荐排行榜:专业生产与优质服务的行业佼佼者!

2025年10月七水硫酸锌厂家最新推荐排行榜:专业生产与优质服务的行业佼佼者!一、行业背景介绍七水硫酸锌是一种重要的化工原料,广泛应用于农业、医药、饲料、电池等多个领域。随着市场需求的不断增长,七水硫酸锌的生…

2025年10月TAB拉链厂家最新权威推荐榜:品质与创新并重的行业佼佼者!

2025年10月TAB拉链厂家最新权威推荐榜:品质与创新并重的行业佼佼者!在当今快速发展的制造业中,TAB拉链作为一种重要的辅料,在服装、箱包、家居用品等多个领域发挥着关键作用。随着消费者对产品质量和设计的要求不断…

2025年10月无弦吉他厂家最新推荐排行榜,智能无弦吉他,便携无弦吉他,专业演奏无弦吉他公司推荐!

2025年10月无弦吉他厂家最新推荐排行榜,智能无弦吉他,便携无弦吉他,专业演奏无弦吉他公司推荐!随着科技的不断进步,无弦吉他作为一种创新的乐器形式,逐渐受到越来越多音乐爱好者的青睐。无弦吉他不仅具有传统吉他…

完整教程:GSM8K:评估大模型数学推理能力的关键数据集

完整教程:GSM8K:评估大模型数学推理能力的关键数据集2025-10-13 12:15 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

2025年10月PP鱼池厂家最新推荐排行榜,环保耐用,养鱼爱好者的首选!

2025年10月PP鱼池厂家最新推荐排行榜,环保耐用,养鱼爱好者的首选!随着水产养殖业的不断发展,PP鱼池因其环保、耐用的特点,逐渐成为养鱼爱好者和专业养殖户的首选。为了帮助筛选PP鱼池品牌,特此发布权威推荐榜单,…

2025年10月UV面光源定制厂家最新推荐榜单:专业定制与卓越品质口碑之选!

2025年10月UV面光源定制厂家最新推荐榜单:专业定制与卓越品质口碑之选!随着科技的不断发展,UV面光源在多个行业中的应用越来越广泛。从印刷、固化到电子制造,UV面光源的性能直接影响着最终产品的质量和生产效率。因…

2025年10月石头纸设备定做厂家最新推荐榜单,专业定制与高效生产口碑之选

2025年10月石头纸设备定做厂家最新推荐榜单,专业定制与高效生产口碑之选随着环保意识的提升和可持续发展的需求增加,石头纸作为一种新型环保材料,逐渐受到市场的青睐。石头纸设备的需求也随之增长,众多厂家纷纷进入…

20232407 2025-2026-1 《网络与系统攻防技术》 实验一实验报告

一、实验目的 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正…

2025 年减压阀厂商推荐榜:气体/实验室/调压/膜片/不锈钢/可调式/气路/气体管路/蒸汽减压阀厂家,聚焦安全与专业,助力企业精准选品

随着工业自动化升级、生物医药与新能源产业快速发展,以及实验室科研需求的不断细化,气体减压阀作为保障气体输送安全、稳定的核心设备,市场需求持续攀升,2025 年行业规模预计迎来显著增长。但当前市场上厂商技术实…