PHP伪协议基本原理介绍

目录
  • 前言
  • 常见的PHP伪协议
    • php://input
    • php://filter
    • zip://与bzip2://与zlib://协议
    • data://
    • phar://

php小编香蕉为您介绍php伪协议基本原理。伪协议是php的一个特性,它允许通过url访问和操作不同资源,如文件、数据库、网络等。伪协议的基本原理是通过特定的url格式来表示不同资源,并将其转化为合适的处理方式。通过伪协议,我们可以方便地访问和操作各种资源,为开发提供了更多的灵活性和便利性。下面我们就来详细了解一下php伪协议的基本原理。

前言

引用一张比较清晰易懂的图

PHP伪协议基本原理介绍

php伪协议是php自己支持的一种协议与封装协议,简单来说就是php定义的一种特殊访问资源的方法。

php小编香蕉为您介绍php伪协议基本原理。伪协议是php的一个特性,它允许通过url访问和操作不同资源,如文件、数据库、网络等。伪协议的基本原理是通过特定的url格式来表示不同资源,并将其转化为合适的处理方式。通过伪协议,我们可以方便地访问和操作各种资源,为开发提供了更多的灵活性和便利性。下面我们就来详细了解一下php伪协议的基本原理。

常见的php伪协议

php小编香蕉为您介绍php伪协议基本原理。伪协议是php的一个特性,它允许通过url访问和操作不同资源,如文件、数据库、网络等。伪协议的基本原理是通过特定的url格式来表示不同资源,并将其转化为合适的处理方式。通过伪协议,我们可以方便地访问和操作各种资源,为开发提供了更多的灵活性和便利性。下面我们就来详细了解一下php伪协议的基本原理。

php://input

php://input 是个可以访问请求的原始数据的只读流,获取POST请求数据的协议

当enctype=”multipart/fORM-data” 的时候 php://input 是无效的。

要使php://input 成功使用还需要配置php.ini 中的 allow_url_include设置为On

PHP伪协议基本原理介绍

案例代码

php

构造执行的代码,输出结果

PHP伪协议基本原理介绍

php小编香蕉为您介绍php伪协议基本原理。伪协议是php的一个特性,它允许通过url访问和操作不同资源,如文件、数据库、网络等。伪协议的基本原理是通过特定的url格式来表示不同资源,并将其转化为合适的处理方式。通过伪协议,我们可以方便地访问和操作各种资源,为开发提供了更多的灵活性和便利性。下面我们就来详细了解一下php伪协议的基本原理。

php://filter

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

在利用上很多都是与包含函数结合使用,读入或者输出获取文件源码然后编码让其不执行从而输出

php://filter 的使用:如
php://filter/read=convert.base64-encode/resource=index.php
php://filter/resource=index.php

php://filter 伪协议组成:
read=
resource=
write=

php://filter/read=处理方式(base64编码,rot13等等)/resource=要读取的文件

read 对应要设置的过滤器:
常见的过滤器分字符串过滤器、转换过滤器、压缩过滤器、加密过滤器
其中convert.base64-encode ,convert.base64-decode都属于 转换过滤器


访问输出base64编码后的内容

PHP伪协议基本原理介绍

php小编香蕉为您介绍php伪协议基本原理。伪协议是php的一个特性,它允许通过url访问和操作不同资源,如文件、数据库、网络等。伪协议的基本原理是通过特定的url格式来表示不同资源,并将其转化为合适的处理方式。通过伪协议,我们可以方便地访问和操作各种资源,为开发提供了更多的灵活性和便利性。下面我们就来详细了解一下php伪协议的基本原理。

zip://与bzip2://与zlib://协议

zip:// 等属于压缩流的协议,通过直接压缩普通文件为zip文件,再通过zip:// 协议读取,可以直接执行php代码。压缩后的zip文件可以随意修改后缀也不影响zip://协议读取。(注意是如phpinfo.txt直接压缩为zip,而不是文件夹压缩zip)

例:


压缩及协议访问格式:

压缩文件为.zip后缀
zip://绝对路径/phpinfo.zip%23phpinfo.php
压缩文件为.bz2后缀
compress.bzip2://绝对路径/phpinfo.zip/phpinfo.php
压缩文件为.gz后缀
compress.zlib://绝对路径/phpinfo.zip/phpinfo.php

zip://访问

PHP伪协议基本原理介绍

php小编香蕉为您介绍php伪协议基本原理。伪协议是php的一个特性,它允许通过url访问和操作不同资源,如文件、数据库、网络等。伪协议的基本原理是通过特定的url格式来表示不同资源,并将其转化为合适的处理方式。通过伪协议,我们可以方便地访问和操作各种资源,为开发提供了更多的灵活性和便利性。下面我们就来详细了解一下php伪协议的基本原理。

data://

data://协议与php://input 有很点相似的地方。他们都可以通过请求提交的php代码数据配合文件包含函数可以达到代码执行效果,data:// 的成功执行需要php.ini设置allow_url_include 与allow_url_open都为On。

data://协议的格式是: data://数据流封装器,相应格式数据

常见的用法为
data://,
data://text/plain,
data://text/plain;base64,PD9waHAGCGhwaW5mbygpOz8%2b

例:


构造data:// 访问

PHP伪协议基本原理介绍

php小编香蕉为您介绍php伪协议基本原理。伪协议是php的一个特性,它允许通过url访问和操作不同资源,如文件、数据库、网络等。伪协议的基本原理是通过特定的url格式来表示不同资源,并将其转化为合适的处理方式。通过伪协议,我们可以方便地访问和操作各种资源,为开发提供了更多的灵活性和便利性。下面我们就来详细了解一下php伪协议的基本原理。

phar://

phar://伪协议在前面phar反序列化的时候学习过,phar也可以对zip格式压缩包进行访问解析。

格式为:phar://绝对路径phpinfo.zipphpinfo.php

PHP伪协议基本原理介绍

以上就是PHP伪协议基本原理介绍的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

        <!-- 

            <button type="button">
            没有解决问题?点击使用智能助手
            </button>

         --&gt;

                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950750.png">

                    智能AI问答
                    每日运维网(www.mryunwei.com)智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。

                我要提问

                <span>相关标签:</span>

                    php Resource 封装 Filter 字符串 input 数据库                    

                            来源:编程网网

                                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950886.png">
                    <span>收藏</span>

                                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">
                    <span>点赞</span>

                    <span>上一篇:PHP实现AJAX动态网页及相关函数详解</span>

                    <span>下一篇:一文搞懂PHP中的DI依赖注入</span>

            <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951867.png">
            本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

            作者最新文章
            <ul>
                                        <li>

                            <span></span>
                            《少年西游记2》官宣定档4月30日,真国潮·真轻松·真福利卡牌来袭

                        2024-04-03 14:10:18
                    </li>
                                        <li>

                            <span></span>
                            华硕推出 ZenScreen Touch MB16AMTR 便携触控显示器,内置四小时续航电池

                        2024-04-03 14:10:01
                    </li>
                                        <li>

                            <span></span>
                            《航海王》梦想指针哪些角色值得培养

                        2024-04-03 14:07:23
                    </li>
                                        <li>

                            <span></span>
                            心渊梦境手游存档位置

                        2024-04-03 14:07:15
                    </li>
                                        <li>

                            <span></span>
                            没有系统的电脑,如何使用U盘安装操作系统?

                        2024-04-03 14:04:15
                    </li>
                                        <li>

                            <span></span>
                            诺基亚8600luna后盖怎么打开(诺基亚8600luna正反面开孔)

                        2024-04-03 14:04:05
                    </li>
                                        <li>

                            <span></span>
                            探讨Golang中泛型的优势和用途

                        2024-04-03 14:03:02
                    </li>
                                        <li>

                            <span></span>
                            《闹闹天宫2》官网

                        2024-04-03 14:01:26
                    </li>
                                        <li>

                            <span></span>
                            诺基亚n70运行内存是多少(关于诺基亚设置运行内存的步骤)

                        2024-04-03 14:00:14
                    </li>
                                        <li>

                            <span></span>
                            烟雨江湖血魔剑煞支线任务图文攻略流程

                        2024-04-03 14:00:06
                    </li>
                                </ul>

            最新问题

                        页面大于所需大小的问题; React.js
                        当前页面如下所示:正如您所看到的,顶部有很多空白区域。我似乎不知道如何让那个空白消失。这是HTML:&lt;divclassName=&quot;auth-form-contain...

                                <span>P粉166675898来自于2024-04-02 14:48:30</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">1
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">113

                        Javascript - Mocha Chai单元测试无法运行
                        我正在与前端Web开发课程训练营合作开展一个项目,不幸的是,我们的教授无法回答我的这个问题。我有一个简单的战争纸牌游戏,需要两名玩家,然后玩26个回合,看看谁赢了。在这个游戏中我有...

                                <span>P粉964682904来自于2024-04-02 14:52:19</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">1
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">182

                        内在小孩的过渡之火
                        这是最小的可重现示例。“切换”悬停的过渡结束正在触发(我不想要)并过早隐藏“a”。要在转换结束后重现单击切换。我意识到这种情况正在发生,因为切换位于a内部(我无法更改它)。有没有办...

                                <span>P粉274161593来自于2024-04-02 14:38:29</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">1
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">111

                        mongodb 中的错误:“Route.post() 需要一个回调函数,但收到了一个”
                        这是我的主文件index.jstypehereconstexpress=require("express");constapp=express();requir...

                                <span>P粉242535777来自于2024-04-02 14:46:18</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">2
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">133

                        当我在 localhost 中键入文件夹名称时如何首先显示登录系统的语法
                        不知道语法是什么?我想要发生的是,当我输入localhost/farm-e-mart时,第一个文件应该显示登录系统。我怎样才能做到这一点?

                                <span>P粉351138462来自于2024-04-02 14:32:52</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">2
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">187

                        在同一页面上的多个位置显示库存计数器
                        这个脚本作为股票倒计时效果很好,但我无法在同一页面上超过1个位置显示它。例如,同一页面上有4或5个产品/计划,每个产品显示的库存数量不同,并且数量变化的时间也不同。仅在1个产品上显...

                                <span>P粉038161873来自于2024-04-02 14:25:38</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">2
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">253

                        以2位小数显示SQL中的计算结果
                        我编写了一个简单的查询来查找两列的百分比,但我希望结果在只有两位小数的列中。这是我写的,但我遇到了错误,而且我似乎无法修复它。SELECTSmall_Bags,Total_Bags...

                                <span>P粉055726146来自于2024-04-02 14:23:34</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">1
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">200

                        如何根据父元素高度自动调整子元素的上边距?
                        我在一次老的大学考试中遇到了问题。基本上它要求:获取这个json文件[{"colore":"#FF0080","pos_orizz...

                                <span>P粉086993788来自于2024-04-02 13:49:19</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">1
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">141

                        下载作为 api 调用响应的 ZIP 文件
                        我有一个二进制zip文件作为api调用的响应。我想使用Javacript/React直接下载该zip文件。我怎样才能实现这个目标?

                                <span>P粉034571623来自于2024-04-02 13:56:27</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">1
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">176

                        不合作布尔逻辑
                        我的网站遇到了一个问题,至少几周来我一直在努力解决这个问题,所以我希望有人能够指出我哪里出了问题。对于一些背景知识,我是一名应届毕业生,这是我为最终项目构建的顶点项目,在演示之前我...

                                <span>P粉343141633来自于2024-04-02 13:34:26</span>

                                  <img src="https://img.mryunwei.com/uploads/2024/04/20240403231950425.png">0
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951129.png">1
                                <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951514.png">125

                相关专题
                更多&gt;

                <ul>
                                            <li>
                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951759.png"> 
                        <span>php文件怎么打开</span> 
                    </li>
                                            <li>
                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231951545.png"> 
                        <span>php怎么取出数组的前几个元素</span> 
                    </li>
                                            <li>
                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231952371.png"> 
                        <span>php反序列化失败怎么办</span> 
                    </li>
                                            <li>
                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231952521.png"> 
                        <span>php怎么连接mssql数据库</span> 
                    </li>
                                            <li>
                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231952102.png"> 
                        <span>php连接mssql数据库的方法</span> 
                    </li>
                                            <li>
                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231952568.png"> 
                        <span>html怎么上传</span> 
                    </li>
                                            <li>
                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231952409.png"> 
                        <span>PHP出现乱码怎么解决</span> 
                    </li>
                                            <li>
                        <img src="https://img.mryunwei.com/uploads/2024/04/20240403231953190.png"> 
                        <span>php怎么在浏览器运行</span> 
                    </li>
                                        </ul>