discuz的php防止sql注入函数


Posted in PHP onJanuary 17, 2011

最近在做一个主题投票网站,客户懂一些程序方面的东西。有特别要求需要过滤一些字符防止sql注入。本来这方面就没有特别的研究过。呵呵,又发扬了一回拿来主义。把discuz论坛的sql防注入函数取了来!

$magic_quotes_gpc = get_magic_quotes_gpc(); 
@extract(daddslashes($_COOKIE)); 
@extract(daddslashes($_POST)); 
@extract(daddslashes($_GET)); 
if(!$magic_quotes_gpc) { 
$_FILES = daddslashes($_FILES); 
} 
function daddslashes($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; 
}

大家可以增强下面的代码加以保护服务器的安全,PHP防止SQL注入安全函数十分重要!
/* 
函数名称:inject_check() 
函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全 
参数:$sql_str: 提交的变量 
返 回 值:返回检测结果,ture or false 
*/ 
function inject_check($sql_str) { 
return eregi('select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str); // 进行过滤 
} 
/* 
函数名称:verify_id() 
函数作用:校验提交的ID类值是否合法 
参
数:$id: 提交的ID值 
返 回 值:返回处理后的ID 
*/ 
function verify_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: 返回过滤后的内容 
*/ 
function post_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; 
}
PHP 相关文章推荐
BBS(php & mysql)完整版(五)
Oct 09 PHP
php在线打包程序源码
Jul 27 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
Oct 13 PHP
php 操作excel文件的方法小结
Dec 31 PHP
一个PHP的String类代码
Apr 20 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
PHP之数组学习
May 29 PHP
php中strtotime函数用法详解
Nov 15 PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
PHP数组遍历的几种常见方式总结
Feb 15 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 #PHP
php短域名转换为实际域名函数
Jan 17 #PHP
PHP学习笔记之三 数据库基本操作
Jan 17 #PHP
PHP学习笔记之二
Jan 17 #PHP
PHP学习笔记之一
Jan 17 #PHP
php下连接mssql2005的代码
Jan 17 #PHP
Php Image Resize图片大小调整的函数代码
Jan 17 #PHP
You might like
Php注入点构造代码
2008/06/14 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
Python交换变量
2008/09/06 Python
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
python实现学生信息管理系统
2020/04/05 Python
Python实现调用另一个路径下py文件中的函数方法总结
2018/06/07 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
小饰品店的创业计划书范文
2013/12/28 职场文书
党风廉政建设责任书
2014/04/14 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript