php SQL防注入代码集合


Posted in PHP onApril 25, 2008

SQL防注入代码一

<?php 
/** 
* 防sql注入 
* @author: zhuyubing@gmail.com 
* */ 
/** 
* reject sql inject 
*/ 
if (!function_exists (quote)) 
{ 
function quote($var) 
{ 
if (strlen($var)) 
{ 
$var=!get_magic_quotes_gpc() ? $var : stripslashes($var); 
$var = str_replace("'","\'",$var); 
} 
return "'$var'"; 
} 
} 
if (!function_exists (hash_num)){ 
function hash_num($input) 
{ 
$hash = 5381; 
for ($i = 0; $i < strlen($str); $i++) 
{ 
$c = ord($str{$i}); 
$hash = (($hash << 5) + $hash) + $c; 
} 
return $hash; 
} 
} 
/**************** end *************************/ 
?>
<?php 
/** 
* 防sql测试代码 
CREATE TABLE IF NOT EXISTS `tb` ( 
`id` int(10) unsigned NOT NULL auto_increment, 
`age` tinyint(3) unsigned NOT NULL, 
`name` char(100) NOT NULL, 
`note` text NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; 
**/ 
include_once('common.php'); 
var_dump(hash_num('dddd')); 
if(empty($_GET)) 
{ 
$_GET = array('age'=>'99','name'=>'a\'b\\\'c";','note'=>"a'b\'\nc#"); 
} 
$age = (int)$_GET['age']; 
$name = quote($_GET['name']); 
$note = quote($_GET['note']); 
$sql = "INSERT INTO `tb` ( `age`, `name`, `note`) VALUES 
( $age, $name, $note)"; 
var_dump($sql); 
?>

PHP 防止sql注入函数代码二:
<?php 
$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注入代码三
function inject_check($sql_str) { //防止注入 
$check = eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str); 
if ($check) { 
echo "输入非法注入内容!"; 
exit (); 
} else { 
return $sql_str; 
} 
} 
function checkurl() { //检查来路 
if (preg_replace("/https教程?://([^:/]+).*/i", "1", $_server['http_referer']) !== preg_replace("/([^:]+).*/", "1", $_server['http_host'])) { 
header("location: http://s.3water.com"); 
exit(); 
} 
} 
//调用 
checkurl(); 
$str = $_get['url']; 
inject_check($sql_str);//这条可以在获取参数时执行操作
PHP 相关文章推荐
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
Json_encode防止汉字转义成unicode的方法
Feb 25 PHP
Zend Framework教程之Application和Bootstrap用法详解
Mar 10 PHP
Zend Framework框架路由机制代码分析
Mar 22 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP单例模式数据库连接类与页面静态化实现方法
Mar 20 PHP
php中文字母数字验证码实现代码
Apr 25 #PHP
Ajax PHP简单入门教程代码
Apr 25 #PHP
PHP开发框架总结收藏
Apr 24 #PHP
php5数字型字符串加解密代码
Apr 24 #PHP
php实现的简单压缩英文字符串的代码
Apr 24 #PHP
php格式化工具Beautify PHP小小BUG
Apr 24 #PHP
使用PHP的日期与时间函数技巧
Apr 24 #PHP
You might like
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
python图像和办公文档处理总结
2019/05/28 Python
python读写csv文件方法详细总结
2019/07/05 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
介绍一下Make? 为什么使用make
2016/07/31 面试题
中专毕业生的自荐书
2014/07/01 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
保管员岗位职责
2015/02/14 职场文书
python 调用js的四种方式
2021/04/11 Python
Python机器学习之KNN近邻算法
2021/05/14 Python
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL