VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php过滤危险html函数代码

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); 

出处:http://www.phpfensi.com/php/20140825/4739.html


相关教程