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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
你好龙卷风!!!5 小时前
mac m4 Homebrew安装MySQL 8.0
数据库·mysql·macos
binnnngo5 小时前
Spring Boot集成阿里云OSS:对象存储实战指南
数据库·spring boot·阿里云
程序猿ZhangSir5 小时前
Redis 和 MySQL双写一致性的更新策略有哪些?常见面试题深度解答。
java·数据库·spring boot·redis·mysql·缓存·mybatis
StarRocks_labs6 小时前
【活动回顾】StarRocks Singapore Meetup #2 @Shopee
数据库·starrocks·数据分析·spark·olap·物化视图·apache druid
逍遥德6 小时前
【数据库事务、消息队列事务、Redis 事务、Spring 事务 详细分析】
数据库·redis·spring·rabbitmq·rocketmq
nbsaas-boot6 小时前
SQL Server 动态构建 SQL 语句学习指南
数据库·sql
HongXuan-Yuan8 小时前
Spring Boot框架
java·数据库·spring boot
明月看潮生8 小时前
青少年编程与数学 02-012 SQLite 数据库简介 01课题、数据库概要
数据库·青少年编程·sqlite·编程与数学
码代码的小农9 小时前
MySQL中如何进行SQL调优?
数据库·sql·mysql
ljh123321ljh9 小时前
常见框架漏洞—Spring
java·数据库·spring