您现在的位置是:首页 > 技术教程 正文

渗透学习-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

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索