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 相关文章推荐
投票管理程序
Oct 09 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
PHP 日常开发小技巧
Sep 23 PHP
PHP制作图形验证码代码分享
Oct 23 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
eclipse php wamp配置教程
Jun 30 PHP
PHP 500报错的快速解决方法
Dec 14 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
jquery封装的对话框简单实现
2013/07/21 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
玩转方法:call和apply
2014/05/08 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
js实现弹幕墙效果
2020/12/10 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
python如何对实例属性进行类型检查
2018/03/20 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
大学生毕业求职简历的自我评价
2013/10/24 职场文书
业务副厂长岗位职责
2014/01/03 职场文书
党员培训思想汇报
2014/01/07 职场文书
总会计师岗位职责
2014/02/19 职场文书
小学工作总结2015
2015/05/04 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
vue ref如何获取子组件属性值
2022/03/31 Vue.js