ホームページ  >  記事  >  バックエンド開発  >  PHP はさまざまな HTML タグのフィルタリングを実装します_PHP チュートリアル

PHP はさまざまな HTML タグのフィルタリングを実装します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:53:531134ブラウズ

PHP はさまざまな HTML タグのフィルタリングを実装しています

プロジェクトに取り組む過程で、データのセキュリティを向上させるために、いくつかの 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("/]*?srcs*=s*('|")(.*?)1[^>]*?/?s*>/ i","", $str); //imgタグをフィルター

$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 つの方法はすべて実装できますが、それぞれに長所と短所がありますので、ご自身のプロジェクトのニーズに応じて選択してください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1000069.html技術記事 PHP はさまざまな HTML タグのフィルタリングを実装しています。プロジェクトで作業する過程で、データのセキュリティを向上させるために一部の HTML タグをフィルタリングする必要があることがよくあります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。