首页
社区
课程
招聘
[讨论]SQL注入的学习笔记
发表于: 2018-9-10 20:39 2837

[讨论]SQL注入的学习笔记

2018-9-10 20:39
2837
[code]<?php
if(isset($_GET["id"])){     //isset函数检测变量是否已设置并且非空。如果$id获得的值是NULL(空),isset函数就会返回FALSE。
$con = mysql_connect("localhost:3306","root","root"); //参数功能链接中有不再详述,参数返回值为:如果连接服务器成功返回一个MYSQL连接标识,反之FALSE
if(!$con) //那么这里如果连接未成功为  !FALSE  条件为真执行,反之不执行。
{
die('Could not connect:'.mysql_error()); //结束函数并输出信息,mysql_error()并返回操作产生的文本错误信息
}
mysql_select_db("ichunqiu",$con); //连接ichunqiu数据库,否则连接$con包含的连接
$querry = "select * from users where id =".$_GET['id'];
$sql = mysql_query($querry,$con); //发送$querry的查询语句,即上一条,若违规查询,返回原来的localhost:3306。返回值:对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
对其他类型,SQL语句,正确返回TRUE,错误返回FLASE
$result = mysql_fetch_array($sql); //对查询结果进行处理,具体功能请百度查看。可视为将查询结果以某种形式存储到$result内。
echo "<table class='itable' border='1' cellspacing='0' width='300px' height='150'>";
echo "<tr>";
echo "<td>id</td>";
echo "<td>username</td>";
echo "</tr>";

echo "<tr>";
echo "<td>".$result['id']."</td>";
echo "<td>".$result['username']."</td>";
echo "</tr>";
echo "</table>"; //到这里为止是输出一个两行两列的表格,分别输出id号和用户名。
mysql_close($con); //关闭$con包含的链接
echo $querry; //输出$querry
}
?>
[/code]

以上代码来自https://bbs.ichunqiu.com/thread-9518-1-1.html?from=bkycold本人手打,可能有偏差。
初学SQL注入,关于html和php等知识初步了解,边学边解析上述代码,然后再继续后续教程,分享给大家,仅希望共同进步。
所有注释均结合本人知识,网上搜索总结所得,如有错漏,希望指正。


另外补充教程中的几点。
1,关于教程中第一节作者在命令行中建立数据库等操作,需要右键任务栏的phpstudy图标,MYSQL工具,打开MYSQL命令行
2,php打开方式,在phpstudy文件夹找到WWW文件夹,在其中创建文本文件,输入代码,然后改为.php文件,比如我的是 T1.php  ,打开任意浏览器,URl中输入localhost/T1.php?id=1
php后面的?id=1是给参数,就是代码中的$_GET["id"]获得值,如果不输入这个值,一开始的if(isset...)这里就会被pass掉,整个语句也就不会执行,打开的页面只会为空。

以上为这一节全部笔记,欢迎大佬指导,欢迎萌新交流。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我想问下,如果找不到用户可以输入的参数(就像id)怎么办?
2018-10-11 08:56
0
游客
登录 | 注册 方可回帖
返回
//