渗透学习-12【重要】- PHP 开发-个人博客项目&文章功能显示&数据库操作&数据接受

一、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'];
}
?>

在这里插入图片描述

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'];
}
?>

访问 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注入

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值