InputFilter
扩展自 InputFilterInputFilter 是一个用于过滤来自任何数据源的输入的类
源自 Daniel Morris 编写的 php 输入过滤器库:[email protected] 原贡献者:Gianpaolo Racca、Ghislain Picard、Marco Wandschneider、Chris Tobin 和 Andrew Eddie。
自 |
1.7.0 |
---|---|
包 |
Joomla CMS |
方法
__construct
InputFilter 类的构造函数。仅第一个参数是必需的。
__construct(mixed||string|int tagsArray = [], mixed||string|int attrArray = [], tagsMethod, attrMethod, xssAuto = 1, stripUSC) :
自 |
1.7.0 |
---|
参数
- tagsArray
array<string|int, mixed>
用户定义的标签列表- attrArray
array<string|int, mixed>
用户定义的属性列表- tagsMethod
int
常量 static::ONLY_ALLOW_DEFINED_TAGS 或 static::BLOCK_DEFINED_TAGS- attrMethod
int
常量 static::ONLY_ALLOW_DEFINED_ATTRIBUTES 或 static::BLOCK_DEFINED_ATTRIBUTES- xssAuto
int
仅自动清理基本内容 = 0,允许清理被阻止的标签/属性 = 1- stripUSC
int
去除 4 字节 Unicode 字符 = 1,不去除 = 0
返回值
混合类型
clean
要由另一个 php 脚本调用的方法。处理 XSS 和指定的恶意代码。
clean( source, type = 'string') :
自 |
1.7.0 |
---|
参数
- source
mixed
要“清理”的输入字符串/字符串数组- type
string
变量的返回类型:INT:整数或整数数组,UINT:无符号整数或无符号整数数组,FLOAT:浮点数或浮点数数组,BOOLEAN:布尔值,WORD:仅包含 A-Z 或下划线的字符串(不区分大小写),ALNUM:仅包含 A-Z 或 0-9 的字符串(不区分大小写),CMD:包含 A-Z、0-9、下划线、句点或连字符的字符串(不区分大小写),BASE64:包含 A-Z、0-9、正斜杠、加号或等号的字符串(不区分大小写),STRING:完全解码和清理的字符串(默认值),HTML:清理的字符串,ARRAY:数组,PATH:清理的文件路径或清理的文件路径数组,TRIM:从普通、不间断和多字节空格中修剪的字符串,USERNAME:不要使用(使用特定于应用程序的过滤器),RAW:原始字符串在不进行过滤的情况下返回,unknown:未知过滤器将像 STRING 一样工作。如果输入是数组,它将返回一个完全解码和清理的字符串数组。
返回值
mixed
输入参数的“清理”版本
decode
尝试转换为纯文本
decode( source) :
自 |
3.5 |
---|
参数
- source
string
源字符串。
返回值
string
纯文本字符串
decodeFileData
解码文件数据数组的方法。
decodeFileData(mixed||string|int data) : mixed||string|int
自 |
3.4 |
---|
参数
- data
array<string|int, mixed>
要解码的数据数组。
返回值
array<string|int, mixed>
emailToPunycode
在保存内容时对 utf8 邮件进行 punyencode 的函数
emailToPunycode( text) :
自 |
3.5 |
---|
参数
- text
string
要编码的字符串
返回值
string
punyencoded 邮件
getInstance
返回一个输入过滤器对象,仅在它不存在时才创建它。
getInstance(mixed||string|int tagsArray = [], mixed||string|int attrArray = [], tagsMethod, attrMethod, xssAuto = 1, stripUSC) : \Joomla\CMS\Filter\InputFilter
自 |
1.7.0 |
---|
参数
- tagsArray
array<string|int, mixed>
用户定义的标签列表- attrArray
array<string|int, mixed>
用户定义的属性列表- tagsMethod
int
常量 static::ONLY_ALLOW_DEFINED_TAGS 或 static::BLOCK_DEFINED_TAGS- attrMethod
int
常量 static::ONLY_ALLOW_DEFINED_ATTRIBUTES 或 static::BLOCK_DEFINED_ATTRIBUTES- xssAuto
int
仅自动清理基本内容 = 0,允许清理被阻止的标签/属性 = 1- stripUSC
int
去除 4 字节 Unicode 字符 = 1,不去除 = 0
返回值
InputFilter
InputFilter 对象。
isSafeFile
检查上传文件是否有可疑的命名和潜在的 PHP 内容,这可能表明存在黑客攻击企图。
isSafeFile(mixed||string|int file, mixed||string|int options = []) :
您可以定义的选项包括:null_byte 防止文件名中包含空字节的文件(缓冲区溢出攻击)forbidden_extensions 不允许在文件的扩展名中的任何位置出现这些字符串 php_tag_in_content 不允许在内容中使用 <?php
标记 phar_stub_in_content 不允许在内容中使用 __HALT_COMPILER()
phar 存根 shorttag_in_content 不允许在内容中使用短标记 <?
shorttag_extensions 要扫描内容中短标记的文件扩展名 fobidden_ext_in_content 不允许在内容中的任何位置使用 forbidden_extensions php_ext_content_extensions 要扫描内容中 .php 的文件扩展名
此代码改编自并改进了 Admin Tools 的 UploadShield 功能,由其作者重新许可并贡献。
自 |
3.4 |
---|
参数
- file
array<string|int, mixed>
上传的文件描述符- options
array<string|int, mixed>
扫描程序选项(有关详细信息,请参阅代码)
返回值
bool
如果文件安全则为真
stripUSC
递归地从源中去除 Unicode 补充字符。注意:无法过滤对象。
stripUSC( source) :
自 |
3.5 |
---|
参数
- source
mixed
要过滤的数据
返回值
mixed
过滤后的结果
常量
FORBIDDEN_FILE_EXTENSIONS
一个数组,其中包含通常可在 Web 服务器上下文中直接执行的文件扩展名列表,这可能会导致代码执行
值 | ['php', 'phps', 'pht', 'phtml', 'php3', 'php4', 'php5', 'php6', 'php7', 'asp', 'php8', 'phar', 'inc', 'pl', 'cgi', 'fcgi', 'java', 'jar', 'py', 'aspx'] |
---|---|
自 |
4.0.0 |
属性
stripUSC
用于 Unicode 补充字符(4 字节 Unicode 字符)去除的标志。
自 |
3.5 |
---|
类型
int