首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP-协议流学习

PHP-协议流学习

作者头像
偏有宸机
发布2020-11-04 10:32:25
9360
发布2020-11-04 10:32:25
举报
文章被收录于专栏:宸机笔记宸机笔记

压缩流(zlib://)

compress.zlib://compress.bzip2://gzopen()bzopen() 是相等的。并且可以在不支持 fopencookie 的系统中使用。 用于读取压缩包的内容

Zlib://

Bzip2://

Zip://

compress.zlib://file.gz

compress.bzip2://file.bz2

zip://archive.zip#dir/file.txt

例:

<?php
$fp = fopen('compress.zip://./foo.zip#bar.txt', 'r');
if( $fp ){
    while( !feof($fp) ){
        echo fread($fp, 8192);
    }
    fclose($fp);
}
?>

使用技巧:

配合phar流,读取phar包内的1.txt文件

compress.zlib://phar://pic/test.jpg/1.txt

输入/输出流(php://)

php:// — 访问各个输入/输出流(I/O streams) 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。

php://input

可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。

而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_data 潜在需要更少的内存。 enctype=”multipart/form-data” 的时候 php://input 是无效的。

php://output

是一个只写的数据流, 允许你以 printecho 一样的方式 写入到输出缓冲区。

php://filter

是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()file()file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

php://filter 目标使用以下的参数作为它路径的一部分。 复合过滤链能够在一个路径上指定。详细使用这些参数可以参考具体范例。

名称

描述

resource=<要过滤的数据流>

这个参数是必须的。它指定了你要筛选过滤的数据流。

read=<读链的筛选列表>

该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。

write=<写链的筛选列表>

该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。

*<;两个链的筛选列表>*

任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。

例:

index.php?file1=php://filter/resource=file.txt
//读取file.txt文件内容
index.php?file1=php://filter/read=convert.base64-encode/resource=file.txt
//读取file.txt并以base64方式解码

归档流(phar://)

phar的本质是一种压缩文件,其中每个被压缩文件的权限、属性等信息都放在这部分。这部分还会以序列化的形式存储用户自定义的meta-data,是phar反序列化攻击手法最核心的地方。

例:

phar://upload_file/phar.phar
//读取phar压缩包的同时,部分文件函数会触发对phar的反序列化,形成漏洞进而利用

数据流(data://)

用于打印数据

例:

data://text/plain;base64,SSBsb3ZlIFBIUAo=
//打印base64解码后的text数据
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 压缩流(zlib://)
    • 例:
      • 使用技巧:
      • 输入/输出流(php://)
        • php://input
          • php://output
            • php://filter
              • 例:
              • 例:
              • 例:
          • 归档流(phar://)
          • 数据流(data://)
          相关产品与服务
          文件存储
          文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档