0

0

php 过滤非法与特殊字符串的方法

PHP中文网

PHP中文网

发布时间:2016-07-25 08:56:32

|

4127人浏览过

|

来源于iteye

转载

在留言板中,有时需要对用户输入内容进行过滤,将一些非法与特殊字符串进行过滤处理,将其替换为*。下面本篇文章就来给大家分享一下过滤功能的实现代码,希望对大家有所帮助!

php 过滤非法与特殊字符串的方法

需求:用户在评论页面输入非法字符以后,需要将非法字符替换为*

简单实现方法:

1、index.php

立即学习PHP免费学习笔记(深入)”;

  
  
  
  
过滤留言板中的非法字符  
  
  
发布主题:
发布内容:

2、index_ok.php

Android数据格式解析对象JSON用法 WORD版
Android数据格式解析对象JSON用法 WORD版

本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载
  
  
  
  
过滤留言板中的非法字符  
  
  

发布主题:

发布内容:

运行结果

1.png

复杂实现方法:可过滤JS 、PHP标签

  //简单过滤JS 、PHP标签
  function cleanJs($html){
  	$html=trim($html);
  	$html=str_replace(array(''),array(''),$html);
  	$pattern=array(
    "']*?>.*?'si",
    "']*?>.*?'si",
    "']*?>'si",
    "']*?>.*?'si",
    "']*?>'si"
    );
    $replace=array("","","","","");
    return	preg_replace($pattern,$replace,$html);
  }
  /* Remove JS/CSS/IFRAME/FRAME 过滤JS/CSS/IFRAME/FRAME/XSS等恶意攻击代码(可安全使用)
   * Return string
   */
  function cleanJsCss($html){
  	$html=trim($html);
  	$html=preg_replace('/\0+/', '', $html);
	$html=preg_replace('/(\\\\0)+/', '', $html);
	$html=preg_replace('#(&\#*\w+)[\x00-\x20]+;#u',"\\1;",$html);
	$html=preg_replace('#(&\#x*)([0-9A-F]+);*#iu',"\\1\\2;",$html);
	$html=preg_replace("/%u0([a-z0-9]{3})/i", "&#x\\1;", $html);
	$html=preg_replace("/%([a-z0-9]{2})/i", "&#x\\1;", $html);
  	$html=str_replace(array(''),array(''),$html);
    $html=preg_replace('#\t+#',' ',$html);
	$scripts=array('javascript','vbscript','script','applet','alert','document','write','cookie','window');
	foreach($scripts as $script){
		$temp_str="";
		for($i=0;$i.*?#si", "", $html);
	$html=preg_replace("#@@##@@#si", "", $html);
	$html=preg_replace("#<(script|xss).*?\>#si", "<\\1>", $html);
	$html=preg_replace('#(<[^>]*?)(onblur|onchange|onclick|onfocus|onload|onmouseover|onmouseup|onmousedown|onselect|onsubmit|onunload|onkeypress|onkeydown|onkeyup|onresize)[^>]*>#is',"\\1>",$html);
	//$html=preg_replace('#<(/*\s*)(alert|applet|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|layer|link|meta|object|plaintext|style|script|textarea|title|xml|xss)([^>]*)>#is', "<\\1\\2\\3>", $html);
	$html=preg_replace('#<(/*\s*)(alert|applet|basefont|base|behavior|bgsound|blink|body|expression|form|frameset|frame|head|html|ilayer|iframe|input|layer|link|meta|object|plaintext|style|script|textarea|title|xml|xss)([^>]*)>#is', "<\\1\\2\\3>", $html);
	$html=preg_replace('#(alert|cmd|passthru|eval|exec|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si', "\\1\\2(\\3)", $html);
	$bad=array(
	'document.cookie'	=> '',
	'document.write'	=> '',
	'window.location'	=> '',
	"javascript\s*:"	=> '',
	"Redirect\s+302"	=> '',
	''				=> '-->'
	);
	foreach ($bad as $key=>$val){
		$html=preg_replace("#".$key."#i",$val,$html);
	}
    return	$html;
  }
  //过滤html标签以及敏感字符

  function cleanHtml($html){
  	return cleanYellow(htmlspecialchars($html));
  }
  //过滤部分HTML标签

  function cleanFilter($html){
  	$html=trim($html);
  	$html=preg_replace("/]*?>/is","

",$html); $html=preg_replace("/]*?>/is","

",$html); $html=preg_replace("/]*?>/is","