php过滤表单提交的危险代码

代码展示
0 71
csroad
csroad 举报
04月19日 22:33

PHP过滤提交表单的html代码里可能有被利用引入外部危险内容的代码。例如,有些时候用户提交表单中含有html内容,但这可能造成显示页面布局混乱,需要过滤掉。


function uhtml($str)     
{     
    $farr = array(     
        "/\s+/", //过滤多余空白     
         //过滤 等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入的过滤     
        "/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU",    
        "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",//过滤javascript的on事件     
   );     
   $tarr = array(     
        " ",     
        "<\1\2\3>",//如果要直接清除不安全的标签,这里可以留空     
        "\1\2",     
   );     
  $str = preg_replace( $farr,$tarr,$str);     
   return $str;     
}  

  1. function uhtml($str)     
  2. {     
  3.     $farr = array(     
  4.         "/\s+/", //过滤多余空白     
  5.          //过滤 等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入的过滤     
  6.         "/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU",    
  7.         "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",//过滤javascript的on事件     
  8.    );     
  9.    $tarr = array(     
  10.         " ",     
  11.         "<\1\2\3>",//如果要直接清除不安全的标签,这里可以留空     
  12.         "\1\2",     
  13.    );     
  14.   $str = preg_replace( $farr,$tarr,$str);     
  15.    return $str;     
  16. }