php SQL防注入代码集合

 更新时间:2008年04月25日 15:13:25   作者:  
php下实现sql防注入效果代码,asp的比较多,php的倒不多见,喜欢php的朋友可以参考下

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.jb51.net");
exit();
}
}
//调用
checkurl();
$str = $_get['url'];
inject_check($sql_str);//这条可以在获取参数时执行操作

相关文章

  • php实现给图片加灰色半透明效果的方法

    php实现给图片加灰色半透明效果的方法

    这篇文章主要介绍了php实现给图片加灰色半透明效果的方法,涉及对图像的操作,是非常实用的技巧,需要的朋友可以参考下
    2014-10-10
  • Thinkphp中import的几个用法详细介绍

    Thinkphp中import的几个用法详细介绍

    这篇文章主要介绍了Thinkphp中import的几个用法,需要的朋友可以参考下
    2014-07-07
  • PHP 命名空间实例说明

    PHP 命名空间实例说明

    PHP 命名空间实例说明,需要的朋友可以参考下。
    2011-01-01
  • 深入理解PHP之OpCode原理详解

    深入理解PHP之OpCode原理详解

    这篇文章主要介绍了深入理解PHP之OpCode原理,较为详细的分析了php程序的相关编译机制与运行原理,需要的朋友可以参考下
    2016-06-06
  • PHP 批量删除 sql语句

    PHP 批量删除 sql语句

    PHP 批量删除 sql语句
    2009-06-06
  • php number_format() 函数通过千位分组来格式化数字的实现代码

    php number_format() 函数通过千位分组来格式化数字的实现代码

    以下是对php中的number format()函数通过千位分组来格式化数字的实现代码进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • PHP form 表单传参明细研究

    PHP form 表单传参明细研究

    最近一段时间一直在做基于uchome的二次开发网站,因uchome中的很多跳转都是通过参数do来控制的,一直对这种机制不是十分的明细,总有一种雾里看花的感觉。
    2009-07-07
  • php中文语义分析实现方法示例

    php中文语义分析实现方法示例

    这篇文章主要介绍了php中文语义分析实现方法,结合实例形式分析了PHP基于BosonNLP扩展实现中文语义分析的具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2019-09-09
  • 详解PHP Swoole与TCP三次握手

    详解PHP Swoole与TCP三次握手

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。TCP在IP报文的协议号是6。TCP是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。本文将详细介绍PHP Swoole与TCP三次握手。
    2021-05-05
  • PHP实现加强版加密解密类实例

    PHP实现加强版加密解密类实例

    这篇文章主要介绍了PHP实现加强版加密解密类,实例分析了php加密解密的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论