ASP博客

博客园是一个高品质的IT技术网站,高品质的用户、高品质的原创内容、高品质的服务,组成了高品质的IT媒体与社区。高品质的媒体让博客园在行业内产生了非常高的影响力,高品质的社区为IT人才提供了一个优秀的平台。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

用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;
}

posted on 2008-12-11 21:24  网者III  阅读(325)  评论(0)    收藏  举报