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-encodeBase64编码后输出
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)