渗透学习-12【重要】- PHP 开发-个人博客项目&文章功能显示&数据库操作&数据接受
admin 阅读: 2024-03-16
后台-插件-广告管理-内容页头部广告(手机) |
一、php 将数据库内容显示在页面上
这个过程能大致明白网页上的内容是怎么来的
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>导航制作</title> <link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/public.css"> </head> <body> <!-- 导航 --> <nav class="pageNav"> <ul class="list"> <li><a href="index.php" target="_blank"><span>首页</span></a></li> <li><a href="news.php" target="_blank"><span>公司产品</span></a></li> <li><a href="#" target="_blank"><span>公司介绍</span></a></li> <li><a href="#" target="_blank"><span>联系我们</span></a></li> <li><a href="#" target="_blank"><span>招聘人才</span></a></li> </ul> </nav> <!-- 导航 end --> </body> </html> <?php //php操作mysql数据库将数据取出来并展示在这个页面上 //第一步先链接mysql数据库 //如果没有这个php标识符,浏览器会把他默认当成html来解析 $conn = mysqli_connect('localhost', 'root', 'root'); //这里可以有多个mysql数据库的连接请求 if(!$conn){ die("链接数据库失败:".mysqli_connect_error()); } //需要选择连接哪个具体的数据库 mysqli_select_db($conn,"test"); //对这个数据库进行操作,执行sql语句 //比如这里是要读取数据库的内容,将其取出并展示在页面,所以查询数据库的内容 $sql="select * from content"; $result=mysqli_query($conn,$sql); //mysqli_query()函数是MySQL数据库中最重要、最常用的查询函数之一。它将SQL查询语句作为参数传入,从而返回一个包含查询结果的结果集。 while($row=mysqli_fetch_array($result)){ echo $row['id']; echo $row['news']; echo $row['username']; } ?>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
mysqli_select_db函数简介
mysqli_query()函数功能及使用方法用法介绍
PHP mysqli_query函数使用教程
配置文件
按照上面的代码,每次访问都需要进行数据库连接,我们可以把它弄成配置文件。将数据库连接代码重新保存到新的config.php文件
这里就可以使用 include 进行包含文件了
这里可以引申两个点,一个是数据库配置文件。如果配置文件泄露则可能导致许多敏感信息泄露,配置文件泄露可以是来源于源码泄露。二是 include包含文件漏洞
只想让php页面显示部分数据库的内容 - 接收参数
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>导航制作</title> <link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/public.css"> </head> <body> <!-- 导航 --> <nav class="pageNav"> <ul class="list"> <li><a href="index.php" target="_blank"><span>首页</span></a></li> <li><a href="news.php" target="_blank"><span>公司产品</span></a></li> <li><a href="#" target="_blank"><span>公司介绍</span></a></li> <li><a href="#" target="_blank"><span>联系我们</span></a></li> <li><a href="#" target="_blank"><span>招聘人才</span></a></li> </ul> </nav> <!-- 导航 end --> </body> </html> <?php //php操作mysql数据库将数据取出来并展示在这个页面上 //第一步先链接mysql数据库 //如果没有这个php标识符,浏览器会把他默认当成html来解析 //$conn = mysqli_connect('localhost', 'root', 'root'); //这里可以有多个mysql数据库的连接请求 //if(!$conn){ // die("链接数据库失败:".mysqli_connect_error()); //} //需要选择连接哪个具体的数据库 //mysqli_select_db($conn,"test"); //对这个数据库进行操作,执行sql语句 //比如这里是要读取数据库的内容,将其取出并展示在页面,所以查询数据库的内容 include("../blog/config.php"); $i=$_GET['id'];//GET 请求接受id参数值并赋给变量i $sql="select * from content where id=$i"; $result=mysqli_query($conn,$sql); //mysqli_query()函数是MySQL数据库中最重要、最常用的查询函数之一。它将SQL查询语句作为参数传入,从而返回一个包含查询结果的结果集。 while($row=mysqli_fetch_array($result)){ echo $row['id']; echo $row['news']; echo $row['username']; } ?>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
访问 http://localhost/blog/news.php?id=1 ,页面仅显示 id 为1的内容 , 其执行的sql语句如下
重点来了。 这里传入的参数是 id =1, 在sql语句中执行的是 select * from content where id=$i , 那么加入我们传入的参数被人修改为 id=1 union select 1,2,3, 那么执行的sql语句就是 select * from content where id=1 union select 1,2,3, 这个就是最基本的sql注入
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |