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下使用SimpleXML 处理XML 文件
Feb 27 PHP
php 连接mysql连接被重置的解决方法
Feb 15 PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 PHP
调整PHP的性能
Oct 30 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 PHP
示例详解Laravel重置密码代码重构
Aug 10 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 PHP
php实现微信扫码支付
Mar 26 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
laravel解决迁移文件一次删除创建字段报错的问题
Oct 24 PHP
Yii框架应用组件用法实例分析
May 15 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
php中spl_autoload详解
2014/10/17 PHP
PHP错误处理函数
2016/04/03 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
详解vue v-model
2020/08/31 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
python的mysqldb安装步骤详解
2017/08/14 Python
图解Python变量与赋值
2018/04/03 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
如何在python中执行另一个py文件
2020/04/30 Python
python批量生成条形码的示例
2020/10/10 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
本科生的职业生涯规划范文
2014/01/09 职场文书
给导游的表扬信
2014/01/10 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
健康家庭事迹材料
2014/05/02 职场文书
家长给学校的建议书
2014/05/15 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
摘录式读书笔记
2015/07/01 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
Golang 链表的学习和使用
2022/04/19 Golang
Nginx利用Logrotate实现日志分割
2022/05/20 Servers