设为首页 加入收藏

TOP

mysql sql防注入简介与防注入实例
2011-06-12 21:33:04 来源: 作者: 【 】 浏览:52次 评论:0

下面我们根据我编程序的经验来写一篇关于mysql教程 sql防注入简介与防注入实例吧。

sql防注入简介:

sql查询是一种用来数据与用户进行交互的文本语言,sql利用外部接将用户提交的数据发送给mysql数据库教程服务器进行处理,如果没有严密的过滤,可能导致数据丢失,如被删除,修改,而这样问题是网络管理员很难做事的,他们不能通过打系统被丁,或安装防火强可以控制了,。

下面我们来看一个简单的用户登陆实例。

一,创建用户表user

create table user (

userid(int) not null auto_increment,

username not null default'',

userpass not null default '',

primary key(userid)

)type= myisam auto_increment=1;

好表就创建成功了。我们先给用户表user插入一条记录

insert into 'user' values(1,'www.111cn.net','123456');

现在来做用户登陆代码

<?php教程

$root ='localhost';

$dbName='root';

$dbpwd ='123456';

$db = 'userdb';

mysql_connect($root,$dbName,$dbpwd) or die('数据库连接失败');

$sql ="select * from user where username='$username"  and password='$pwd';

$result =mysql_db_query($db,$sql);

$ufo = mysql_fetch_array( $result );

if( $ufo )

{

echo '登陆成功';

}

else

{

echo '登陆失败';

}

好现在我们来做一个实例提供一个url给上面的php处理页面

http://www.111cn.net/test/a.php?user=www.111cn.net' or '  1= 1;

结果发现这条sql可以成功登陆我们的系统,而不是我想要的密码等12346,好下面我们再来看个实例

http://www.111cn.net/test/a.php?user=www.111cn.net' /*;

http://www.111cn.net/test/a.php?user=www.111cn.net' or ' #;

这样只要用户名正确同样可以登陆系统,在sql语句中/*与#是注掉后面的sql,

好了,根据上面的问题我们写了一个自定义函数来过滤大部sql注入的防注入函数

function safesql()

{

$re = "/(|'%27|;|(%3d)|(|(%28)|)|(%29)|(/*)|(%2f%2a)|(%2a%2f)|+|(%2b)|(<|(%3e)|(%3e)|(--))|[|%5d)/";

if( preg_match( $re ,$username)

{

echo'请不要非法sql注入';

exit;

}

else

{

return turn;

}

最后总结一下:

sql注入原理以及sql防注入的措施,最后给出了一个php实例来告诉你如何做mysql防注入方法,以后一些常用的处理方法。

注明:本站原创文章转载注明来源www.111cn.net

您看到此篇文章时的感受是:
Tags: 责任编辑:administrator
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇mysql数据库定义自动备份数据 下一篇MSSQL数据库迁移之用户名处理方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

相关栏目

最新文章

图片主题

热门文章

推荐文章

相关文章

广告位