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 相关文章推荐
PHP入门速成(2)
Oct 09 PHP
PHP新手上路(十一)
Oct 09 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
php 获取本机外网/公网IP的代码
May 09 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
ini_set的用法介绍
Jan 07 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
PHP常用处理静态操作类
Apr 03 PHP
php实现的一段简单概率相关代码
May 30 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 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实现获取文件mime类型的方法
2015/02/11 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
美国知名日用品连锁超市:Dollar General(多来店)
2017/01/14 全球购物
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
艺术学院毕业生自我评价
2014/03/02 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
用php如何解决大文件分片上传问题
2021/07/07 PHP
Python字符串格式化方式
2022/04/07 Python
使用scrapy实现增量式爬取方式
2022/06/21 Python