php防止sql注入函数

$magic_quotes_gpc= get_magic_quotes_gpc();

@extract(daddslashes($_COOKIE));

@extract(daddslashes($_POST));

@extract(daddslashes($_GET));

if(!$magic_quotes_gpc){

$_FILES = daddslashes($_FILES);

}

functiondaddslashes($string, $force = 0) {

if(!$GLOBALS[‘magic_quotes_gpc‘]|| $force) {

if(is_array($string)){

foreach($string as$key => $val) {

$string[$key] =daddslashes($val, $force);

}

} else {

$string =addslashes($string);

}

}

return $string;

}

//*************************************************************************

/*

函数名称:inject_check()

函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全

参  数:$sql_str: 提交的变量

返回值:返回检测结果,ture or false

*/

functioninject_check($sql_str) {

returneregi(‘select|insert|and|or|update|delete|\‘|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile‘,$sql_str); // 进行过滤

}

/*

函数名称:verify_id()

函数作用:校验提交的ID类值是否合法

参  数:$id: 提交的ID值

返回值:返回处理后的ID

*/

functionverify_id($id=null) {

if (!$id) { exit(‘没有提交参数!‘); } // 是否为空判断

elseif(inject_check($id)) { exit(‘提交的参数非法!‘); } // 注射判断

elseif(!is_numeric($id)) { exit(‘提交的参数非法!‘); } // 数字判断

$id = intval($id);// 整型化

return $id;

}

/*

函数名称:str_check()

函数作用:对提交的字符串进行过滤

参  数:$var: 要处理的字符串

返回值:返回过滤后的字符串

*/

function str_check($str ) {

if(!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否打开

$str =addslashes($str); // 进行过滤

}

$str =str_replace("_", "\_", $str); // 把 ‘_‘过滤掉

$str =str_replace("%", "\%", $str); // 把 ‘%‘过滤掉

return $str;

}

/*

函数名称:post_check()

函数作用:对提交的编辑内容进行处理

参  数:$post: 要提交的内容

返回值:$post: 返回过滤后的内容

*/

functionpost_check($post) {

if(!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否为打开

$post =addslashes($post); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤

}

$post =str_replace("_", "\_", $post); // 把 ‘_‘过滤掉

$post =str_replace("%", "\%", $post); // 把 ‘%‘过滤掉

$post =nl2br($post); // 回车转换

$post =htmlspecialchars($post); // html标记转换

return $post;

}

来自:盛腾客户管理系统网址:www.shengtengcrm.com

php防止sql注入函数

时间: 2024-11-08 04:03:04

php防止sql注入函数的相关文章

自定义防SQL注入函数

/************************************************ *SQL防注入函数 *@time 2014年6月24日18:50:59 * */ public function safe_replace($string){ $string = str_replace('%20','',$string); $string = str_replace('%27','',$string); $string = str_replace('%2527','',$stri

PHP POST, GET 参数过滤,预防sql注入函数

1. 实际过滤函数 可适当修改其中的正则表示式 1 static public function filterWords(&$str) 2 { 3 $farr = array( 4 "/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU", 5 "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/

php防sql注入函数

function clean($str){ $str=trim($str); $str=strip_tags($str); $str=stripslashes($str); $str=addslashes($str); $str=rawurldecode($str); $str=quotemeta($str); $str=htmlspecialchars($str); $str=preg_replace("//+|/*|/`|//|/-|/$|/#|/^|/!|/@|/%|/&|/~|/

SQL注入防御绕过

一.宽字节注入1.什么是宽字节GB2312.GBK.GB18030.BIG5等这些都是常说的宽字节,实际为两字节 2.宽字节注入原理防御:将 ' 转换为 \'绕过:将 \ 消灭 mysql在使用GBK编码的时候,会认为两个字符为一个汉字\ 编码为 %5c' 编码为%27%df%5c mysql会认为是一个汉字构造:%df' %df\' %df%5c%27 其中%df%5c将成为一个汉字专为 汉字' 从而绕过了/的转义注:前一个ascii码大于128才能到汉字的范围 注入方法:在注入点后键入%df

那些年我们一起挖掘SQL注入 - 6.全局防护Bypass之一些函数的错误使用

0x01 背景 PHP程序员在开发过程中难免会使用一些字符替换函数(str_replace).反转义函数(stripslashes),但这些函数使用位置不当就会绕过全局的防护造成SQL注入漏洞. 0x02 漏洞分析 str_replace函数的错误使用 第一种情况是写程序时会使用str_replace函数将参数中的单引号.括号等字符替换为空,这样在一些双条件查询的情况就会引发注入问题.缺陷代码如下: <?phprequire_once('common.php');$conn = mysql_co

PHP mysql_real_escape_string() 函数防SQL注入

PHP MySQL 函数 定义和用法 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符. 下列字符受影响: \x00 \n \r \ ' " \x1a 如果成功,则该函数返回被转义的字符串.如果失败,则返回 false. 语法 mysql_real_escape_string(string,connection) 参数 描述 string 必需.规定要转义的字符串. connection 可选.规定 MySQL 连接.如果未规定,则使用上一个

用于防SQL注入的几个函数

不要相信用户的在登陆中输入的内容,需要对用户的输入进行处理 SQL注入: ' or 1=1 # 防止SQL注入的几个函数: addslashes($string):用反斜线引用字符串中的特殊字符' " \ $username=addslashes($username); mysql_escape_string($string):用反斜杠转义字符串中的特殊字符,用于mysql_query()查询. $username=mysql_escape_string($username); mysql_re

PHP函数 addslashes() 和 mysql_real_escape_string() 的区别,SQL注入攻击分析

首先:不要使用 mysql_escape_string(),它已被弃用,请使用 mysql_real_escape_string() 代替它. mysql_real_escape_string() 和 addslashes() 的区别在于: 区别一: addslashes() 不知道任何有关MySQL连接的字符集.如果你给所使用的MySQL连接传递一个包含字节编码之外的其他编码的字符串,它会很愉快地把所有值为字符'.".\和\x00的字节进行转义.如果你正在使用不同于8位和UTF-8的其它字符,

Sql注入截取字符串常用函数

  在sql注入中,往往会用到截取字符串的问题,例如不回显的情况下进行的注入,也成为盲注,这种情况下往往需要一个一个字符的去猜解,过程中需要用到截取字符串.本文中主要列举三个函数和该函数注入过程中的一些用例.Ps;此处用mysql进行说明,其他类型数据库请自行检测. 三大法宝:mid(),substr(),left() mid()函数 此函数为截取字符串一部分.MID(column_name,start[,length]) 参数 描述 column_name 必需.要提取字符的字段. start