PHP security filter function sample code

怪我咯
Release: 2023-03-13 06:02:02
Original
1811 people have browsed it

php 安全过滤函数代码,防止用户恶意输入内容。

 代码如下:

//安全过滤输入[jb] 
function check_str($string, $isurl = false) 
{ 
$string = preg_replace('/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]/','',$string); 
$string = str_replace(array("\0","%00","\r"),'',$string); 
empty($isurl) && $string = preg_replace("/&(?!(#[0-9]+|[a-z]+);)/si",'&',$string); 
$string = str_replace(array("%3C",&#39;<&#39;),&#39;<&#39;,$string); 
$string = str_replace(array("%3E",&#39;>&#39;),&#39;>&#39;,$string); 
$string = str_replace(array(&#39;"&#39;,"&#39;","\t",&#39; &#39;),array(&#39;“&#39;,&#39;‘&#39;,&#39; &#39;,&#39; &#39;),$string); 
return trim($string); 
}
Copy after login

下面是为大家整理的一些过滤函数:

代码如下:

/**
* 安全过滤类-过滤javascript,css,iframes,object等不安全参数 过滤级别高
*  Controller中使用方法:$this->controller->fliter_script($value)
* @param  string $value 需要过滤的值
* @return string
*/
function fliter_script($value) {
$value = preg_replace("/(javascript:)?on(click|load|key|mouse|error|abort|move|unload|change|dblclick|move|reset|resize|submit)/i","&111n\\2",$value);
$value = preg_replace("/(.*?)<\/script>/si","",$value);
$value = preg_replace("/(.*?)<\/iframe>/si","",$value);
$value = preg_replace ("//iesU", &#39;&#39;, $value);
return $value;
}
/**
* 安全过滤类-过滤HTML标签
*  Controller中使用方法:$this->controller->fliter_html($value)
* @param  string $value 需要过滤的值
* @return string
*/
function fliter_html($value) {
if (function_exists(&#39;htmlspecialchars&#39;)) return htmlspecialchars($value);
return str_replace(array("&", &#39;"&#39;, "&#39;", "<", ">"), array("&", "\"", "&#39;", "<", ">"), $value);
}
/**
* 安全过滤类-对进入的数据加下划线 防止SQL注入
*  Controller中使用方法:$this->controller->fliter_sql($value)
* @param  string $value 需要过滤的值
* @return string
*/
function fliter_sql($value) {
$sql = array("select", &#39;insert&#39;, "update", "delete", "\&#39;", "\/\*", 
     "\.\.\/", "\.\/", "union", "into", "load_file", "outfile");
$sql_re = array("","","","","","","","","","","","");
return str_replace($sql, $sql_re, $value);
}
/**
* 安全过滤类-通用数据过滤
*  Controller中使用方法:$this->controller->fliter_escape($value)
* @param string $value 需要过滤的变量
* @return string|array
*/
function fliter_escape($value) {
if (is_array($value)) {
  foreach ($value as $k => $v) {
   $value[$k] = self::fliter_str($v);
  }
} else {
  $value = self::fliter_str($value);
}
return $value;
}
/**
* 安全过滤类-字符串过滤 过滤特殊有危害字符
*  Controller中使用方法:$this->controller->fliter_str($value)
* @param  string $value 需要过滤的值
* @return string
*/
function fliter_str($value) {
$badstr = array("\0", "%00", "\r", &#39;&&#39;, &#39; &#39;, &#39;"&#39;, "&#39;", "<", ">", "   ", "%3C", "%3E");
$newstr = array(&#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&&#39;, &#39; &#39;, &#39;"&#39;, &#39;&#39;&#39;, "<", ">", "   ", "<", ">");
$value  = str_replace($badstr, $newstr, $value);
$value  = preg_replace(&#39;/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/&#39;, &#39;&\\1&#39;, $value);
return $value;
}
/**
* 私有路劲安全转化
*  Controller中使用方法:$this->controller->filter_dir($fileName)
* @param string $fileName
* @return string
*/
function filter_dir($fileName) {
$tmpname = strtolower($fileName);
$temp = array(&#39;:/&#39;,"\0", "..");
if (str_replace($temp, &#39;&#39;, $tmpname) !== $tmpname) {
  return false;
}
return $fileName;
}
/**
* 过滤目录
*  Controller中使用方法:$this->controller->filter_path($path)
* @param string $path
* @return array
*/
public function filter_path($path) {
$path = str_replace(array("&#39;",&#39;#&#39;,&#39;=&#39;,&#39;`&#39;,&#39;$&#39;,&#39;%&#39;,&#39;&&#39;,&#39;;&#39;), &#39;&#39;, $path);
return rtrim(preg_replace(&#39;/(\/){2,}|(\\\){1,}/&#39;, &#39;/&#39;, $path), &#39;/&#39;);
}
/**
* 过滤PHP标签
*  Controller中使用方法:$this->controller->filter_phptag($string)
* @param string $string
* @return string
*/
public function filter_phptag($string) {
return str_replace(array(&#39;&#39;), array(&#39;<?&#39;, &#39;?>&#39;), $string);
}
/**
* 安全过滤类-返回函数
*  Controller中使用方法:$this->controller->str_out($value)
* @param  string $value 需要过滤的值
* @return string
*/
public function str_out($value) {
$badstr = array("<", ">", "%3C", "%3E");
$newstr = array("<", ">", "<", ">");
$value  = str_replace($newstr, $badstr, $value);
return stripslashes($value); //下划线
}
Copy after login


The above is the detailed content of PHP security filter function sample code. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!