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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
第二节 对象模型 [2]
Oct 09 PHP
PHP聊天室技术
Oct 09 PHP
PHP函数utf8转gb2312编码
Dec 21 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
Nov 10 PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 PHP
php异常处理方法实例汇总
Jun 24 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 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中get_object_vars()方法用法实例
2015/02/08 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
PHP 闭包详解及实例代码
2016/09/28 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
2007/03/27 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
vue2里面ref的具体使用方法
2017/10/27 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
Python编写一个优美的下载器
2018/04/15 Python
解决yum对python依赖版本问题
2019/07/05 Python
Python Selenium参数配置方法解析
2020/01/19 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
Python3读写ini配置文件的示例
2020/11/06 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
车间班组长的职责
2013/12/13 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
前台接待员岗位职责
2015/04/15 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js