您的位置:首页 > Web前端 > HTML

php 过滤危险html函数 代码

2010-09-09 16:33 309 查看
php教程 过滤危险html函数 代码
1、删除html注释;
2、删除script、link、object、embed、iframe、frame、frameset以及拥有on开头、包含网页特效:[^;]或expression的属性的标签;
3、删除css教程中的注释(防止用这个来欺骗删除expression表达式,不知道还有其他什么方法可以欺骗删除expression);

4、删除expression表达式;

过滤危险html */

function fillter_html( $str ) {
/* 过滤style标签 */
return preg_replace_callback(
/* 过滤style标签内容 */
'/(<s*style[^>]*>)((?:(?!<s*/s*styles*>).)*)(<s*/s*styles*>)?/i',
create_function('$str', 'return $str[1] . fillter_css($str[2]) . $str[3];'),
preg_replace(
array(
/* 删除html注释 */
'/<!--.*?-->/i',
/* 删除标签:script、link、object、embed、iframe、frame、frameset */
'/<s*(script|object|embed|link|i?frame(set)?)[^>]*>(.*?<s*/s*/1s*>)?/i',
/* 删除事件、javascript协议、css表达式 */
'/<[^>]+((on[a-z]+s*=|javascript:[^;"/']|expressions*()[^>]*)+>?/i',
),
'',
$str
)
);
}

/* 过滤样式正文 */
function fillter_css( $str ) {
/* 删除注释、javascript协议、表达式 */
return preg_replace(array('/(/*((?!*/).)**/|/*|*/)/i', '/expressions*((.*?))?|javascripts*:/i',), '', $str);
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: