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小偷的核心程序
Apr 09 PHP
PHP 开源AJAX框架14种
Aug 24 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
Linux编译升级php的详细方法
Nov 04 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
Feb 26 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
php中curl和soap方式请求服务超时问题的解决
Jun 11 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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的FTP学习(一)[转自奥索]
2006/10/09 PHP
php遍历数组的方法分享
2012/03/22 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
Javascript执行效率全面总结
2013/11/04 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
使用python实现链表操作
2018/01/26 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
Python模块 _winreg操作注册表
2020/02/05 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
认识深刻的检讨书
2014/02/16 职场文书
怀念母亲教学反思
2014/04/28 职场文书
读书月活动方案
2014/05/22 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
2019 入党申请书范文
2019/07/10 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers