⑴ php中,通过$_GET 和 $_POST 取得的数据 安不安全 需要什么过滤函数处理吗
引号过滤有magic_quotes_gpc(服务器配置)
函数addslashes() htmlspecialchars(,ENT_QUOTE);
注意服务器上是否已经开启magic_quotes_gpc
(php>=5.3 已经废弃了它) 如果已经开启,再进行转义会导致双层转义。 另外addslashes() addcslashes() 都不能对数组进行处理,需要写一个递归实现。
你可以使用函数get_magic_quotes_gpc()来检测它是否已经开启
不建议使用addslashes使用addslashes可能会因为数据库编码的问题使得单引号未被转义了解详情可访问:http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string
⑵ php过滤危险html代码
用PHP过滤html里可能被利用来尺散引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显示页面布陵困乱局混乱的代码也在过尺档滤范围内。
以下是引用片段:
#用户发布的html,过滤危险代码
function uh($str)
{
$farr = array("/s+/", //过滤多余的空白
"/(/?)(script|i?frame|style|html|body|title|link|meta|?|\%)([^]*?)/isU", //过滤 script 等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入object的过滤
"/([^]*)on[a-zA-Z]+s*=([^]*)/isU", //过滤javascript的on事件);
$tarr = array(" ",
"<\1\2\3>", //如果要直接清除不安全的标签,这里可以留空
"\1\2",);
$str = preg_replace( $farr,$tarr,$str);
return $str;
}