InputFilter

扩展自 InputFilter

InputFilter 是一个用于过滤来自任何数据源的输入的类

源自 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要编码的字符串

返回值

stringpunyencoded 邮件

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

返回值

InputFilterInputFilter 对象。

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

instances

InputFilter 实例的容器。

静态

4.0.0

类型

array<string|int, InputFilter>