プロジェクトに取り組む過程で、データのセキュリティを向上させるために、いくつかの HTML タグをフィルタリングする必要があることがよくあります。これは、アプリケーションに潜在的に有害なデータを削除するためです。タグを削除し、不要な文字を削除またはエンコードするために使用されます。
まず、より一般的なものをいくつか共有しましょう
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
$str=preg_replace("/
$str=preg_replace("/s+/","", $str); //冗長な改行をフィルターします
$str=preg_replace("/ $str=preg_replace("/<(/?html.*?)>/si","",$str); //HTMLタグをフィルターします
$str=preg_replace("/<(/?head.*?)>/si","",$str); //headタグをフィルタリングします
$str=preg_replace("//si","",$str); //メタタグをフィルターします
$str=preg_replace("//si","",$str); //ボディタグをフィルターします
$str=preg_replace("//si","",$str); //リンクタグをフィルタリングします
$str=preg_replace("/<(/?form.*?)>/si","",$str); //フォームタグをフィルタリングします
$str=preg_replace("/cookie/si","COOKIE",$str); // COOKIE タグをフィルターします
$str=preg_replace("/<(applet.*?)>(.*?)<(/applet.*?)>/si","",$str);
$str=preg_replace("/<(/?applet.*?)>/si","",$str); // アプレットタグをフィルタリングします
$str=preg_replace("/<(style.*?)>(.*?)<(/style.*?)>/si","",$str);
$str=preg_replace("/<(/?style.*?)>/si","",$str); // スタイルタグをフィルターします
$str=preg_replace("/<(title.*?)>(.*?)<(/title.*?)>/si","",$str);
$str=preg_replace("/<(/?title.*?)>/si","",$str); //タイトルタグをフィルタリングします
$str=preg_replace("/<(object.*?)>(.*?)<(/object.*?)>/si","",$str);
$str=preg_replace("//si","",$str); // オブジェクトタグをフィルターします
$str=preg_replace("/<(noframes.*?)>(.*?)<(/noframes.*?)>/si","",$str);
$str=preg_replace("//si","",$str); // noframes タグをフィルターします
$str=preg_replace("/(.*?)/si","",$str); /フィルターフレームタグ
$str=preg_replace("//si","",$str); //フレームタグをフィルターします
$str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","",$str);
$str=preg_replace("/<(/?script.*?)>/si","",$str); //スクリプトタグをフィルターします
$str=preg_replace("/javascript/si","Javascript",$str); // スクリプトタグをフィルターします
$str=preg_replace("/vbscript/si","Vbscript",$str); //スクリプトタグをフィルターします
$str=preg_replace("/on([a-z]+)s*=/si","On1=",$str); //スクリプトタグをフィルターします
$str=preg_replace("//si","",$str); //スクリプトタグをフィルターします |
より簡単な書き方:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function delhtml($str){ //HTMLタグをクリア $st=-1 //開始 ;$et=-1 //終了 ;$stmp=array(); $stmp[]=" "; $len=strlen($str); for($i=0;$i $ss=substr($str,$i,1); if(ord($ss)==60){ //ord("<")==60 $st=$i; } if(ord($ss)==62){ //ord(">")==62 $et=$i; if($st!=-1){ $stmp[]=substr($str,$st,$et-$st+1); } } } $str=str_replace($stmp,"",$str); $str;を返す } |
もう 1 つ:
?
1 2 3 4 5 6 |
関数clear_html_label($html) { $search = array ("''si", "'<[/!]*?[^<>]* ?>'si", "'([rn])[s]+'", "'&(quot|#34);'i", "'&(amp|#38);'i", " '&(lt|#60);'i"、"&(gt|#62);'i"、"'&(nbsp|#160);'i"、"'&(iexcl|#161) ;'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'& #(d+);'e"); $replace = array ("", "", "1", """, "&", "<", ">", " ", chr(161), chr(162), chr(163) )、chr(169)、"chr(1)"); return preg_replace($search, $replace, $html); } |
上記の 3 つの方法はすべて実装できますが、それぞれに長所と短所がありますので、ご自身のプロジェクトのニーズに応じて選択してください。
。