sql删除+sql注入的一个小案例

  • 1,269
<?php

//链接
$conn=mysql_connect('localhost','root','12345678');
if($conn){
	print_r($conn);
}else{
	exit;
}

//选库
$sql="use test";
//发送sql进行查询
$rs=mysql_query($sql,$conn);//沿着conn通道进行查询



//sql字符集设置成utf8
$sql="set names utf8";
mysql_query($sql,$conn);

//接收地址栏的id,传几号id,就删几号会员
$id=isset($_GET['id'])?$_GET['id']:0;

//形成删除用的sql语句
$sql='delete from stu where id='.$id;


//发送查询
if(mysql_query($sql,$conn)){
	echo "删除成功";
}else{
	echo "删除失败";
}

//地址栏来一个 id=83 or 1
/*
根据$sql拼接的结果
$sql = 'delete from stu where id=83 or 1'

1恒为真,因为所有的行,都满足条件,都被删除了.
这是一个非常简单的sql注入的例子.

怎么避免?
答:大原则,永远不要相信从客户处传来的数据
见mysql03.php
*/

?>
<?php

//链接
$conn=mysql_connect('localhost','root','12345678');
if($conn){
	print_r($conn);
}else{
	exit;
}

//选库
$sql="use test";

//发送sql进行查询
$rs=mysql_query($sql,$conn);//沿着conn通道进行查询



//sql字符集设置成utf8
$sql="set names utf8";
mysql_query($sql,$conn);


//如果是合法的id,应该是整行值才对,不应该是字符串

//接收地址栏的id,传几号id,就删几号会员
$id=isset($_GET['id'])?$_GET['id']+0:0;
//字符串+0,变成整型了,就不会再有注入的功能了.

//形成删除用的sql语句
$sql='delete from stu where id='.$id;


//发送查询
if(mysql_query($sql,$conn)){
	echo "删除成功";
}else{
	echo "删除失败";
}

?>
weinxin
我的微信
这是我的微信扫一扫
php最后更新:2016-5-28
开拓者博主
  • 本文由 发表于 2016年5月26日19:11:56
  • 转载请务必保留本文链接:https://www.150643.com/9.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: