当前位置:首页 > PHP教程 > php函数 > 列表

php过滤危险html函数代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-25 10:59:41 浏览: 评论:0 

1、删除html注释;

2、删除script、link、object、embed、iframe、frame、frameset以及拥有on开头、包含网页特效:[^;]或expression的属性的标签;

3、删除css教程中的注释(防止用这个来欺骗删除expression表达式,不知道还有其他什么方法可以欺骗删除expression);

4、删除expression表达式;

php过滤危险html,代码如下:

  1. function fillter_html( $str ) { 
  2.         /* 过滤style标签 */ 
  3.         return preg_replace_callback( 
  4.                         /* 过滤style标签内容 */ 
  5.                         '/(<s*style[^>]*>)((?:(?!<s*/s*styles*>).)*)(<s*/s*styles*>)?/i'
  6.                         create_function('$str''return $str[1] . fillter_css($str[2]) . $str[3];'),//开源代码phpfensi.com 
  7.                         preg_replace( 
  8.                                 array
  9.                                         /* 删除html注释 */ 
  10.                                         '/<!--.*?-->/i'
  11.                                         /* 删除标签:script、link、object、embed、iframe、frame、frameset */ 
  12.                                         '/<s*(script|object|embed|link|i?frame(set)?)[^>]*>(.*?<s*/s*\1s*>)?/i'
  13.                                         /* 删除事件、javascript协议、css表达式 */ 
  14.                                         '/<[^>]+((on[a-z]+s*=|javascript:[^;"\']|expressions*()[^>]*)+>?/i'
  15.                                 ), 
  16.                                 ''
  17.                                 $str 
  18.                         ) 
  19.         ); 
  20.  
  21. /* 过滤样式正文 */ 
  22. function fillter_css( $str ) { 
  23.         /* 删除注释、javascript协议、表达式 */ 
  24.         return preg_replace(array('/(/*((?!*/).)**/|/*|*/)/i''/expressions*((.*?))?|javascripts*:/i',), ''$str); 

Tags: php过滤代码 php过滤html

分享到: