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初学者的8点有效建议
Nov 20 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
php根据年月获取季度的方法
Mar 31 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
PHP类型约束用法示例
Sep 28 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
Laravel 框架路由原理与路由访问实例分析
Apr 14 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 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
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
js Event对象的5种坐标
2011/09/12 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
简单学习vue指令directive
2016/11/03 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
Vue的Options用法说明
2020/08/14 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
利用Python爬取可用的代理IP
2016/08/18 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
综合实践活动方案
2014/02/14 职场文书
仓库主管岗位职责
2014/03/02 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
二婚主持词
2015/06/30 职场文书
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python