前言: 放寒假了,之前一直在准备期末,没什么时间学技术和写博客,最近有空了会写一些。
本篇博客将接着之前的内容介绍利用php搭建博客的一些步骤,从网页开发角度分析一些常用漏洞的产生。
学安全首先要会开发
1.1操作数据库
php作为一门编程语言,是无法直接与数据库进行交互的,想要进行该操作需要使用php提供的数据库拓展,Php
提供了许多的数据库拓展,比较常见的有mysql拓展,mysqli拓展,下文将介绍mysqli拓展的使用。
想要使用该拓展首先需要在php.ini文件中打开
想要在php中操作数据库,分三个部分,1 连接数据库,2 操作数据库,3 断开连接
<?php
$link = mysqli_connect("localhost", "root", "root");
mysqli_select_db($link, "mysql");
$sql = "select * from help_topic";
$query = mysqli_query($link, $sql);
while ($row = mysqli_fetch_array($query)) {
echo $row['name'];
echo "</br>";
}
mysqli_close($link);
?>
1. mysqli_connect()
函数用于与数据库建立连接,传入的分别是服务器地址(可以是ip地址或者域名),数据库账号,
数据库密码,数据库名(可省略),操作选项(可省略) 该函数的返回值是一个 MySQLi 连接对象,用于后续的数据库
操作和数据库关闭过程。
**2. **mysqli_select_db()
该函数用于选择数据库,分别传入连接对象和数据库名两个参数。
**3. ** mysqli_query()
该函数用于执行mysql语句,对数据库进行操作,传入的值分别是连接对象和mysql操作语
句,该函数在查询成功后返回一个mysqli对象,查询失败则返回false. 查询完成后,如果想要输出结果,则需要用到
mysqli_fetch_array
,该函数在结果集中取一行作为关联数组,每次执行后向下一行,直到结果集末尾。
数组的索引就是表的栏名,比如id,name,等
4. mysqli_close()
用于关闭连接,传入的值是连接对象。
通过上述的四个的步骤,就完成了一次数据库操作。
如果每次进行数据库操作都要来一遍这四种操作就未免过于麻烦,可以利用数据库配置文件进行简化
即,将连接数据库的语句单独放在另一个创建的config.php中,然后再在原文件中包含config.php即可
由于数据库配置文件中往往包含数据库的账号和密码,所以可以在此方向进行攻击
如果我们要根据条件选择不同的内容,可以这样做
<?php
include("config.php");
$sql = "select * from help_topic where help_topic_id= '" . $_GET['id'] . "'limit 1;";
$query = mysqli_query($link, $sql);
while ($row = mysqli_fetch_array($query)) {
echo $row['name'];
echo "</br>";
}
mysqli_close($link);
?>
通过get传参然后进行查询,有没有觉得很眼熟,没错,这就构成了最基础的sql注入。
1.2 其他数据库操作
在过去,无论是关于sql注入还是前文的操作,只用了Mysql中的select操作,我们对数据库还存在其他的操作。
标签:网页,数据库,拓展,漏洞,mysqli,操作,php,连接 From: https://www.cnblogs.com/rpup/p/17991714