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

HTB 笔记 | SQL 注入基础:轻松有趣指南 | P1

你好呀,小蜜蜂!🐝 让我们把数据库这个看似复杂的世界拆解成你也能轻松理解的内容。想象一下,数据库就像是一个巨大的蜂巢,里面储存着所有的数据。根据蜂巢的组织方式(整齐或混乱),我们可以把它分成两种类型:关系型数据库 非关系型数据库

1. 关系型数据库(整齐的蜂巢)

关系型数据库就像一个超级整洁的文件柜,每样东西都有自己的位置,并且每个抽屉之间都以逻辑的方式连接在一起。这些数据库使用 SQL (结构化查询语言)——也就是你用来和数据库“对话”的语言。

  • 表格 :可以把这些表格想象成电子表格。每个表格存储特定的信息。例如:

    • 一个表格可以存储客户信息(姓名、地址等)。
    • 另一个表格可以存储产品信息(价格、库存等)。
    • 第三个表格可以记录订单(谁买了什么)。
  • :可以把键想象成身份证。每个表格中的每一行都会有一个唯一的键(比如客户 ID 或产品 ID)。这些键帮助表格互相连接。例如:

    • “用户”表可能有一个 id 列。
    • “帖子”表可能有一个 user_id 列,与“用户”表的 id 对应。

这种连接被称为 模式(Schema) ,它让一切都变得非常高效。你不需要一遍又一遍地重复相同的信息——只需要把点连起来!

  • 为什么用它? 关系型数据库非常适合处理结构化数据(如客户记录或产品库存)。常见的例子包括 MySQL PostgreSQL SQL Server
2. 非关系型数据库(混乱的蜂巢)

现在,想象一个不关心整齐行和列的数据库。这就是 非关系型数据库 (也叫 NoSQL)。它不用表格来存储数据,而是以灵活的格式存储,比如 JSON 或 XML。这就像是把所有蜂蜜罐子扔进一个大桶里,而不是整齐地摆放。

  • 存储模型 :NoSQL 数据库有不同的“口味”:

    • 键值对 :就像字典({'key': 'value'})。
    • 文档型 :以 JSON 或 XML 格式存储数据。
    • 宽列型 :适合存储大量相似的数据。
    • 图形型 :适合映射关系(如社交网络)。
  • 为什么用它? NoSQL 对于非结构化或杂乱的数据(如社交媒体帖子或传感器数据)非常有用。一个常见的例子是 MongoDB

SQL vs. NoSQL
  • SQL :结构化、可预测,并用键来连接表格。
  • NoSQL :灵活、混乱,并以多种格式存储数据。
为什么你应该关心?

如果有人试图攻击数据库,他们可能会使用 SQL 注入 (针对关系型数据库)或 NoSQL 注入 (针对非关系型数据库)。别担心,我们稍后再详细讲。现在只需记住:

  • SQL 注入 :狡猾的黑客试图欺骗你的数据库泄露秘密。
  • NoSQL 注入 :黑客利用 NoSQL 的灵活结构进行攻击。

小贴士 :把关系型数据库想象成有编号书架的图书馆(键),而非关系型数据库则是一堆书被扔进房间。两者都能工作,但一个更容易找到东西!📚


http://www.kler.cn/a/610765.html

相关文章:

  • JSON简介及C++中的JSON使用指南
  • Flutter 常见错误和坑
  • skynet.netpack四个核心函数详解
  • 机器学习都有哪些算法?
  • Golang 的 Waitgroup 锁用 Java的话要怎么实现?
  • LIMS应用的意义-LIMS厂家排名推荐
  • 全分辨率免ROOT懒人精灵-自动化编程思维-设计思路-实战训练
  • Docker镜像迁移方案
  • Rust从入门到精通之入门篇:3.Hello World
  • [问题收集]mysql主从分离过程中,数据不同步可能导致的后果以及应对策略
  • Ubuntu 重置密码方法
  • Android studio无法查看源码
  • 2.4 Gannt图【甘特图】
  • 多级缓存和数据一致性问题
  • 鸿蒙Flutter开发故事:不,你不需要鸿蒙化
  • 宝塔docker flarum默认登录账号密码,crazymax/flarum镜像默认登录账号密码
  • 【leetcode hot 100 215】数组中的第K个最大元素
  • Python----计算机视觉处理(Opencv:梯度处理:filiter2D算子,Sobel,Laplacian)
  • 鸿蒙HarmonyOS NEXT之无感监听
  • WPF TextBox实现键盘enter后实时读取TextBox中的值