PHP伪协议php://filter的使用
First Post:
Last Update:
Word Count:
Read Time:
Last Update:
Word Count:
463
Read Time:
1 min
php://filter
PHP伪协议以php://filter/
开头,后方参数以/
分割,主要有以下三种参数
- resource
- 必选参数,用于标识需要应用过滤器的数据源
- read
- 可选参数, 后接需要对数据源应用的过滤器列表,过滤器直接使用
|
分割
- 可选参数, 后接需要对数据源应用的过滤器列表,过滤器直接使用
- write
- 可选参数, 与
read
相同
- 可选参数, 与
数据将从resources
数据源中取出,经过read/write
过滤器从前向后处理后输出
1 |
|
以上过滤器会将filter.txt
中的数据通过convert.base64-encode
Base64编码后输出
1 |
|
以上过滤器会将filter.txt
中的数据通过编码后转换为大写输出
注意
将Base64编码全部转换为大写会导致无法解码,此处仅做多个过滤器示例使用
过滤器列表
字符串过滤器
string.rot13
ROT13
是一种简易的替换式密码,应用ROT13
密码只需要将每一个字母替换为26位字母表中向后13位的字母
如字母A
将被替换为N
,B
替换为O
由于英文字母只有26个,因此对应用过ROT13
的文本再次应用即可还原为原始文本
string.toupper
将字母转换为大写
string.tolower
将字母转换为小写
string.strip_tags
从PHP7.3.0开始,此方法已经被废弃
去除文本中的标记,如html标记<b>
<div>
等,PHP标记<?php?>
等
转换过滤器
convert.base64-encode(decode)
base64-encode
用于Base64编码,base64-decode
用于解码,无需赘述
convert.iconv.*
等效于PHPiconv
函数,格式通常为convert.iconv.<from>.<to>
,用于将一种编码的文本转换为另一种编码
压缩过滤器
zlib.deflate(inflate)
zlib压缩(deflate)和解压(inflate)
bzip2.compress(decompress)
bzip2压缩(compress)和解压(decompress)