在 application/config.php 中有个配置选项
框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则
则会调用这些函数 自动过滤
function safe_replace($string) {
$string = str_replace('%20','',$string);
$string = str_replace('%27','',$string);
$string = str_replace('%2527','',$string);
$string = str_replace('*','',$string);
$string = str_replace('"','"',$string);
$string = str_replace("'",'',$string);
$string = str_replace('"','',$string);
$string = str_replace(';','',$string);
$string = str_replace('<','<',$string);
$string = str_replace('>','>',$string);
$string = str_replace("{",'',$string);
$string = str_replace('}','',$string);
$string = str_replace('\\','',$string);
return $string;
}
// 默认全局过滤方法 用逗号分隔多个
'default_filter' => 'htmlspecialchars,addslashes,strip_tags,safe_replace',
htmlspecialchars:防XSS攻击,尖括号等转义过滤
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
&:转换为&
":转换为"
':转换为成为 '
<:转换为<
>:转换为>
htmlspecialchars()函数语法格式:
$str = htmlspecialchars(string,flags,character-set,double_encode);
参数说明
string:规定要转换的字符串;
flags :可选参数,规定如何处理引号、无效的编码以及使用哪种文档类型;
可用的引号类型:
ENT_COMPAT:默认。仅编码双引号。
ENT_QUOTES:编码双引号和单引号。
ENT_NOQUOTES:不编码任何引号。
无效的编码:
ENT_IGNORE:忽略无效的编码,而不是让函数返回一个空的字符串。应尽量避免,因为这可能对安全性有影响。
ENT_SUBSTITUTE: 把无效的编码替代成一个指定的带有 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD; 的字符,而不是返回一个空的字符串。
ENT_DISALLOWED: 把指定文档类型中的无效代码点替代成 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD;。
规定使用的文档类型的附加 flags:
ENT_HTML401 - 默认。作为 HTML 4.01 处理代码。
ENT_HTML5:作为 HTML 5 处理代码。
ENT_XML1:作为 XML 1 处理代码。
ENT_XHTML: 作为 XHTML 处理代码。
character-set :可选。一个规定了要使用的字符集的字符串。
允许的值:
UTF-8:默认。ASCII 兼容多字节的 8 位 Unicode
ISO-8859-1:西欧
ISO-8859-15:西欧(加入欧元符号 + ISO-8859-1 中丢失的法语和芬兰语字母)
cp866:DOS 专用 Cyrillic 字符集
cp1251:Windows 专用 Cyrillic 字符集
cp1252: Windows 专用西欧字符集
KOI8-R: 俄语
BIG5 :繁体中文,主要在台湾使用
GB2312: 简体中文,国家标准字符集
BIG5-HKSCS:带香港扩展的 Big5
Shift_JIS:日语
EUC-JP:日语
MacRoman:Mac 操作系统使用的字符集
注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。
double_encode:可选参数,一个规定了是否编码已存在的 HTML 实体的布尔值(TRUE:默认,将对每个实体进行转换;FALSE:不会对已存在的 HTML 实体进行编码);
addslashes:防SQL注入,在每个双引号(")前添加反斜杠
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。
注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
strip_tags:剥去字符串中的 HTML 标签
strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。
注释:该函数始终会剥离 HTML 注释。这点无法通过 allow 参数改变。
注释:该函数是二进制安全的。
语法
strip_tags(string,allow)
网友评论