- 关于
filter
函数过滤 会把非字符串类型(如 布尔型,整型)转为字符串类型的bug
/**
* 修复后的输入过滤
* 富文本反XSS请使用 clean_xss,也就不需要及不能再 filter 了
* @param string|bool|int $string 要过滤的字符串
* @return string|bool|int
*/
function filter(string|bool|int $string): string|bool|int
{
if (!is_string($string)) return $string;
// 去除字符串两端空格(对防代码注入有一定作用)
$string = trim($string);
// 过滤html和php标签
$string = strip_tags($string);
// 特殊字符转实体
return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8');
}
- 关于
clean_xss
函数过滤 会把非字符串类型(如 布尔型,整型)转为字符串类型的bug
/**
*修复后的输入过滤
* 清理XSS
* 通常只用于富文本,比 filter 慢
* @param string|int|bool $string
* @return string|int|bool
*/
function clean_xss(string|int|bool $string): string|int|bool
{
if (!is_string($string)) return $string;
return (new AntiXSS())->xss_clean($string);
}