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 30 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
php获取当月最后一天函数分享
Feb 02 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
Jul 14 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
浅谈PHP中静态方法和非静态方法的相互调用
Oct 04 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
wordpress自定义标签云与随机获取标签的方法详解
Mar 22 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 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&amp;&amp;mysql)四
2006/10/09 PHP
php 传值赋值与引用赋值的区别
2010/12/29 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
PHP答题类应用接口实例
2015/02/09 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
Python 12306抢火车票脚本
2018/02/07 Python
Python定义一个函数的方法
2020/06/15 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
android面试问题与答案
2016/12/27 面试题
如何手工释放资源
2013/12/15 面试题
内刊编辑求职自荐书范文
2014/02/19 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
python如何获取网络数据
2021/04/11 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技