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类
Oct 09 PHP
php基础知识:类与对象(1)
Dec 13 PHP
PHP Zip解压 文件在线解压缩的函数代码
May 26 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
thinkPHP5框架中widget的功能与用法详解
Jun 11 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 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 删除数组元素
2009/01/16 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
php生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
vuejs指令详解
2017/02/07 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python格式化日期时间操作示例
2018/06/28 Python
python 画函数曲线示例
2019/12/04 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
Java软件工程师综合面试题笔试题
2013/09/08 面试题
骨干教师培训感言
2014/01/16 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
创新型城市实施方案
2014/03/06 职场文书
2019银行竞聘书
2019/06/21 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL