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同时支持GIF、png、JPEG
Oct 09 PHP
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
php使用session二维数组实例
Nov 06 PHP
php+mysql查询优化简单实例
Jan 13 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
PHP加密解密实例分析
Dec 25 PHP
php生成与读取excel文件
Oct 14 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
深入理解PHP中的global
2014/08/19 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
详解PHP PDO简单教程
2019/05/28 PHP
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
简历中的自我评价怎么写
2014/01/29 职场文书
理想演讲稿范文
2014/05/21 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
英文慰问信范文
2015/03/24 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
无保留意见审计报告
2015/06/05 职场文书
Django drf请求模块源码解析
2021/06/08 Python
新手初学Java网络编程
2021/07/07 Java/Android