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

【网络安全】Web安全基础- 第一节:web前置基础知识

目录

  • 前言
  • 一、 中间件
    • 1.1消息中间件
    • 1.2数据库中间件
    • 1.3web服务器中间件
    • 1.4应用服务器中间件
    • 1.5远程过程调用中间件
  • 二、源码
    • **组成部分:**
      • 1、**前端(客户端)代码:**
      • 2、**后端(服务器端)代码**:
      • 3、资源文件:
      • 4、API接口:
      • 5、框架和库:
      • 6、配置文件:
  • 三、数据库
  • 四、CDN
  • 五、WAF
  • 六、DNS解析
    • DNS 解析过程
        • 1. DNS 查询的启动
        • 2. 查询本地缓存
        • 3. 查询本地 DNS 服务器
        • 4. 向根 DNS 服务器查询
        • 5. 向顶级域(TLD)DNS 服务器查询
        • 6. 向权威 DNS 服务器查询
        • 7. 返回 IP 地址
        • 8. 缓存结果
    • DNS 解析类型
    • DNS 解析缓存
  • 七、渗透目标模式
  • 八、web架构
    • 1、常规化
    • 2、站库分离
    • 3、前后端分离
    • 4、宝塔+phpstudy等集成环境
    • 5、Docker容器
    • 6、静态web

前言

将之前学长为我培训的笔记进行整理与实践。

一、 中间件

中间件是一种位于操作系统和应用程序之间的软件层,旨在提供各种支持服务,使得不同的软件系统能够有效地进行通信和数据交换。它常常被用来解决不同系统或应用之间的兼容性和通信问题,简化开发流程。

1.1消息中间件

如RabbitMQ、Kafka、ActiveMQ,用于消息队列的管理。

1.2数据库中间件

用于数据库连接池、数据缓存、分布式数据库的管理。

1.3web服务器中间件

如Apache、Nginx,通常用于Web应用与浏览器之间的通信,处理HTTP请求和响应。

1.4应用服务器中间件

如JBoss、Tomcat,提供Web应用程序的运行环境,管理应用的生命周期、事务等。

1.5远程过程调用中间件

如gRPC、Thrift,支持远程服务调用,简化分布式系统的实现。

二、源码

网站源码指的是构成一个网站的所有代码和资源文件,通常包括前端代码(如 HTML、CSS 和 JavaScript)以及后端代码(如服务器端脚本、数据库查询和 API 接口)。这些代码和文件一起工作,定义了网站的外观、功能和与用户的交互方式。

组成部分:

1、前端(客户端)代码:

HTML:HTML 是网页的结构语言,用于定义网页的内容和结构。通过 HTML,开发者可以创建网页的元素,如标题、段落、表格、图片、链接等。

CSS:CSS 用于控制网页的布局和样式。它定义了页面的颜色、字体、大小、边距、位置等。

JavaScript:JavaScript 是一种编程语言,通常用于为网页添加动态效果和交互功能。它可以响应用户操作、修改网页内容、与后端服务器交互等。

2、后端(服务器端)代码

后端代码处理网站的业务逻辑、数据库交互、认证授权等功能。

Web服务器代码:Web服务器(如 Apache、Nginx)负责处理来自客户端的请求并返回适当的响应。后端代码通常运行在服务器上,接受请求并返回数据。

编程语言:后端开发使用多种编程语言,如 Python、Java、PHP、Ruby、Node.js、Go 等,来实现业务逻辑。

数据库代码:网站通常会使用数据库来存储和管理数据。后端代码可以通过 SQL 或 NoSQL 查询来与数据库交互,获取、插入、更新或删除数据。

3、资源文件:

网站源码还包括一些静态资源文件,如图片、视频、字体、音频等,这些文件用于丰富网站内容和界面。

4、API接口:

网站的后端经常会提供 RESTful API 或 GraphQL API,用于与前端进行数据交互。前端通过发送 HTTP 请求(如 GET、POST)向后端接口请求数据或发送数据。

5、框架和库:

网站开发往往会使用一些框架和库来提高开发效率、管理复杂性或实现特定功能。例如:

前端框架:React、Vue.js、Angular 等,用于构建动态用户界面。

后端框架:Django(Python)、Spring Boot(Java)、Express(Node.js)等,用于构建和管理 Web 应用。

6、配置文件:

配置文件用于定义网站的环境和运行时配置。常见的配置文件包括:

package.json: 用于 Node.js 项目,管理依赖、脚本等

.env: 用于存储环境变量,如数据库连接信息

webpack.config.js: 用于配置 Webpack 构建工具

三、数据库

数据库是一个结构化的数据存储系统,用于存储、管理和操作大量数据。它通过组织数据的方式,使得用户能够高效地存取、修改、删除和管理数据。数据库系统通常包括数据库管理系统(DBMS),它是管理数据库的关键软件,提供了数据的创建、读取、更新和删除(即 CRUD 操作)等功能。

四、CDN

CDN(内容分发网络,Content Delivery Network)是一种通过分布式的服务器集群来加速网站内容传输的技术。它通过将网站的静态资源(如图片、视频、JavaScript、CSS 文件等)存储在全球多个地理位置的缓存服务器上,使得用户能够从距离他们最近的服务器获取内容,从而提高访问速度、降低延迟,优化网站性能。

原理: 内容分发服务,旨在提高访问速度,减轻源站压力

影响:

隐藏真实源IP,导致对目标测试错误

防护 DDoS 攻击。

提供 HTTPS 加密支持,保护数据传输安全。

CDN内容分发结构:
在这里插入图片描述

五、WAF

原理: web应用防火墙,旨在提供保护。

影响: 常规web安全测试手段会受到拦截。

案例:

雷池waf

https://demo.waf-ce.chaitin.cn:9443/statistics/dashboard

https://demo.waf-ce.chaitin.cn:10084/

六、DNS解析

DNS解析是将人类可读的域名(如www.example.com)转换为计算机可理解的 IP 地址(如192.168.1.1)的过程。DNS 是互联网的一个核心部分,承担着在因特网上提供域名与 IP 地址之间映射的功能,使得用户能够通过简易的域名访问网站,而不必记住复杂的 IP 地址。

DNS 解析过程

DNS 解析涉及一系列的查询步骤,通常包含从客户端到 DNS 服务器的多次请求。以下是 DNS 解析的详细过程:

1. DNS 查询的启动

当你在浏览器中输入一个网址(如www.example.com)并按下回车时,浏览器会启动 DNS 查询过程来找到该网站的 IP 地址。

2. 查询本地缓存

在 DNS 查询过程中,系统会首先检查本地 DNS 缓存,看看之前是否已经查询过该域名及其对应的 IP 地址。如果缓存中有该域名的解析记录,直接返回该记录,避免进行更复杂的查询。

  • 本地 DNS 缓存:操作系统和浏览器会缓存域名与 IP 地址的映射,以提高访问速度并减少网络流量。
3. 查询本地 DNS 服务器

如果本地没有缓存记录,操作系统会向本地的 DNS 解析服务器发送请求。通常情况下,本地的 DNS 服务器是由 ISP(互联网服务提供商)提供的,或者是你手动配置的第三方 DNS 服务(如 Google 的8.8.8.8或 Cloudflare 的1.1.1.1)。

  • DNS 递归查询:本地 DNS 服务器会代替客户端完成后续的 DNS 查询,它将会从根域名服务器开始逐步查找,直到找到目标域名的解析结果。
4. 向根 DNS 服务器查询

如果本地 DNS 服务器没有该域名的缓存记录,它将向根 DNS 服务器发起请求。根 DNS 服务器是 DNS 系统的最高层次,它不直接保存域名和 IP 地址的映射,但它知道该请求应该去哪里查找。

  • 根 DNS 服务器:根 DNS 服务器是全世界分布的几台服务器的集合,每一台根 DNS 服务器都知道所有顶级域(TLD)服务器的 IP 地址。例如,对于 www.example.com,根 DNS 服务器知道该查询应由 .com 域的权威 DNS 服务器来处理。
5. 向顶级域(TLD)DNS 服务器查询

根 DNS 服务器将请求指向与域名的顶级域(例如 .com.org.net 等)相对应的 TLD 服务器。TLD 服务器负责处理特定顶级域的所有域名请求。

  • TLD 服务器:这些服务器存储有关该顶级域的所有域名的 IP 地址记录。比如,.com 顶级域的服务器存储了所有以 .com 结尾的域名的解析信息。
6. 向权威 DNS 服务器查询

TLD 服务器会根据请求提供该域名的权威 DNS 服务器的 IP 地址。权威 DNS 服务器存储着关于该域名的确切解析记录(例如,A 记录、CNAME 记录等)。

  • 权威 DNS 服务器:这是域名的“权威”服务器,它保存着特定域名的确切 DNS 记录。如果你查询 www.example.com,权威 DNS 服务器会直接返回该域名的 IP 地址。
7. 返回 IP 地址

当权威 DNS 服务器找到该域名对应的 IP 地址后,DNS 查询结果会通过各级 DNS 服务器返回给本地 DNS 服务器,然后再返回给客户端(浏览器)。此时,浏览器已经获得了域名对应的 IP 地址,可以向该 IP 地址发起 HTTP 请求,加载网页内容。

8. 缓存结果

在得到 IP 地址后,本地 DNS 服务器会将该 IP 地址缓存一段时间(称为 TTL,Time to Live)。TTL 是一个值,表示缓存的有效期,过期后,缓存会被清除。TTL 的设置通常是由域名的管理员配置的。这样,在未来的查询中,DNS 服务器可以直接使用缓存数据,而无需重新执行完整的查询过程。

DNS 解析类型

DNS 解析有几种不同类型的查询:

  1. A 记录(Address Record):

    • A 记录将一个域名映射到一个 IPv4 地址。例如,www.example.com可能会指向 192.168.1.1
  2. AAAA 记录:

    • AAAA 记录与 A 记录类似,但它将一个域名映射到一个 IPv6 地址。
  3. CNAME 记录(Canonical Name Record):

    • CNAME 记录将一个域名别名映射到另一个域名的真实名称。例如,www.example.com可以是 example.com 的别名。
  4. MX 记录(Mail Exchange Record):

    • MX 记录用于指定邮件服务器的位置。例如,mail.example.com用于接收 example.com域的邮件。
  5. NS 记录(Name Server Record):

    • NS 记录指定负责管理某个域名的 DNS 服务器。
  6. PTR 记录(Pointer Record):

    • PTR 记录用于反向 DNS 查找,即从 IP 地址找到域名。
  7. TXT 记录:

    • TXT 记录可以包含任意的文本信息,常用于域名验证(如 SPF、DKIM)等。

DNS 解析缓存

为了提高性能,DNS 系统会缓存解析结果。这些缓存可以存储在不同的地方:

  • 本地计算机的 DNS 缓存:操作系统会存储最近查询过的 DNS 记录。缓存通常有 TTL 值,过期后需要重新解析。
  • ISP 提供的 DNS 缓存:ISP 的 DNS 服务器也会缓存解析结果,以便其他用户请求相同的域名时能够更快速地响应。
  • 浏览器缓存:浏览器也会缓存 DNS 查询结果,以减少对 DNS 服务器的请求次数。

七、渗透目标模式

渗透(渗透是针对程序)目标模式分为子域名模式、端口模式、目录模式

子域名模式 a.shallowdream.sbs b.shallowdream.sbs

端口模式 a.com:1234 a.com:80

目录模式 a.com/cms a.com/bcms a.com/cms/dddd

八、web架构

1、常规化

原理:源码数据都在同服务器

影响:无,常规安全测试手法,一切常规

2、站库分离

原理:源码数据库不在同服务器

存储:其他服务器上数据库&云数据库产品

影响:数据被单独存放,能连接才可影响数据

前端 后端 数据库

127.0.0.1:3306

数据库密码

服务器被拿下了,但是拿不到数据

3、前后端分离

原理: 前端JS框架,API传输数据 vue框架

影响:

1、前端页面大部分不存在漏洞 eg:无意义的xss(获取不到cookie的xss)

2、后端管理大部分不在同域名 a.com b.com

3、获得权限有可能不影响后端

前端页面大部分不存在漏洞,主要是找信息泄露,拿到重要信息后,再对后端进行渗透

4、宝塔+phpstudy等集成环境

原理:打包类集成化环境,权限配置或受控制

影响:攻击者权限对比区别

5、Docker容器

原理:虚拟化技术独立磁盘空间,非真实物理环境

影响:攻击者虚拟空间磁盘

6、静态web

例子:各种公司、大学的首页网站等

原理:数据没有传输性(js传输不算),无请求包与响应包,只有html和css格式以及静态文件。

影响:无漏洞(信息泄露除外)

相关文章:

【网络安全】Web安全基础- 第一节:web前置基础知识

目录 前言一、 中间件1.1消息中间件1.2数据库中间件1.3web服务器中间件1.4应用服务器中间件1.5远程过程调用中间件 二、源码**组成部分:**1、**前端(客户端)代码:**2、**后端(服务器端)代码**:3…...

数仓开发那些事_番外(2)

一闪在摸爬滚打了数年后,结合去年获得了个优秀员工,现在负责数据开发一面。 神州员工:一闪,你们还缺人不,不想当外包了。 一闪:我只负责招开发,实施的招聘我参与不了哇。(所以你能…...

Linux常用指令-----下

Linux常用指令------上 Linux常用指令------中 Linux系列 文章目录 Linux系列前言一、more指令二、less指令三、head指令和tail指令四、grep指令五、zip指令和unzip指令六、tar指令1、打包压缩2. 预览3. 解压解包 前言 在上一篇博客中,我給大家介绍了cat指令&#…...

MySQL通过binlog日志进行数据恢复

记录一次阿里云MySQL通过binlog日志进行数据回滚 问题描述由于阿里云远程mysql没有做安全策略 所以服务器被别人远程攻击把数据库给删除,通过查看binlog日志可以看到进行了drop操作,下面将演示通过binlog日志进行数据回滚操作。 1、查询是否开始binlog …...

【AIGC】与模型对话:理解与预防ChatGPT中的常见误解

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯模型的工作原理和用户期望差异人工智能模型的基本工作原理认知上的局限与误解用户期望与模型实际能力的差距精确理解用户意图的重要性实际应用中的建议 &…...

字符2

strncpy n表示最多拷贝n个字符到目标字符串,当源字符串的字符个数不够时,就拷贝\0直至拷贝n个(源字符串不一定有\0),相对strcpy更加安全 char* strncpy (char* destination, const char* source, size_t n); strncat 当源字符串…...

25年宁德时代社招在职晋升Verify测评SHL题库:语言理解+数字推理考什么?

宁德时代的社招测评采用Verify系统,主要分为两大核心部分:语言理解和数字推理。 1. **语言理解部分**:包括阅读理解、逻辑填空和语句排序等题型。要求应聘者在17分钟内完成30题,旨在考察应聘者的阅读速度、理解准确性和逻辑性。 …...

数据转换:连接数据孤岛,释放信息价值

引言 在当今这个数据驱动的时代,数据转换已成为企业获取竞争优势的关键。随着数据量的爆炸性增长,不同来源、不同格式的数据需要被整合和转换,以便于分析和决策。本文将探讨数据转换的重要性、常见方法、工具以及最佳实践。 数据转换的重要…...

提升PHP技能:18个实用高级特性

掌握PHP基础知识只是第一步。 深入了解这18个强大的PHP特性,将显著提升您的开发效率和代码质量。 1、超越 __construct() 的魔法方法 虽然 __construct() 为大多数开发者所熟知,PHP 却提供了更多强大的魔术方法,例如: class Da…...

MySQL基础操作(2)

目录 1. CONCAT() 2. 3. ! 或 <> 4. IS NULL 5. IS NOT NULL 6. BETWEEN ... AND ... 7. LIKE 8. ORDER BY 9. LIMIT 10. LENGTH() 11. SUBSTR() 12. UPPER() 13. LOWER() 14. CONCAT_WS() 15. REPLACE() 16. INSTR() 17. TRIM() 18. IFNULL() 19. SY…...

Windows环境 (Ubuntu 24.04.1 LTS ) 国内镜像,用apt-get命令安装RabbitMQ

一、环境 Windows11 WSL(Ubuntu 24.04.1) 二、思路 1 用Windows中的Ubuntu安装RabbitMQ&#xff0c;贴近Linux的线上环境&#xff1b; 2 RabbitMQ用erlang语言编写的&#xff0c;先安装erlang的运行环境&#xff1b; 2 用Linux的apt-get命令安装&#xff0c;解决软件依赖…...

web网页前后端交互方式

参考该文&#xff0c; 一、前端通过表单<form>向后端发送数据 前端是通过html中的<form>表单&#xff0c;设置method属性定义发送表单数据的方式是get还是post。 如使用get方式&#xff0c;则提交的数据会在url中显示&#xff1b;如使用post方式&#xff0c;提交…...

LN61C 高精度 低功耗 小封装 电压检测芯片

1、产品概述 LN61C 系列芯片是使用 CMOS 技术开发的高精度、低功耗、 小封装电压检测芯片。检测电压在小温度漂移的情况下保持 极高的精度。客户可选择 CMOS 输出或 Open Drain 输出。 2、产品特点 高精度&#xff1a; 2% 低功耗&#xff1a;2.0A &#xff08; VIN1.5V …...

自动驾驶控制与规划——Project 2: 车辆横向控制

目录 零、任务介绍一、环境配置二、算法三、代码实现四、效果展示 零、任务介绍 补全src/ros-bridge/carla_shenlan_projects/carla_shenlan_stanley_pid_controller/src/stanley_controller.cpp中的TODO部分。 一、环境配置 上一次作业中没有配置docker使用gpu&#xff0c;…...

Bootstrap-HTML(五)图像基础样式

Bootstrap-HTML&#xff08;五&#xff09;图像基础样式 前言一、圆角图片二、圆形图片三、缩略图四、对齐图像五、图片居中六、响应式图片 前言 在之前的博客中&#xff0c;我们已经详细了解了 Bootstrap5 中诸多实用的组件和样式类&#xff0c;比如徽章与表格等&#xff0c;…...

bain.js(十二):RNN神经网络实战教程 - 音乐乐谱生成 -人人都是作曲家~

系列文章&#xff1a; &#xff08;一&#xff09;&#xff1a;可以在浏览器运行的、默认GPU加速的神经网络库概要介绍&#xff08;二&#xff09;&#xff1a;项目集成方式详解&#xff08;三&#xff09;&#xff1a;手把手教你配置和训练神经网络&#xff08;四&#xff09…...

Endnote | 查看文献所在分组

软件版本&#xff1a;Endnote X8 第一种方式&#xff1a; 在文献上右键——记录摘要&#xff0c;即可在弹出页面上看到自定义和智能组的分组情况。 第二种方式&#xff1a; 在菜单栏点击文献——记录摘要&#xff0c;也可以查看分组情况。 注&#xff1a; 新版本的endnote软件…...

DateRangePickerDialog组件的用法

文章目录 概念介绍使用方法示例代码我们在上一章回中介绍了DatePickerDialog Widget相关的内容,本章回中将介绍DateRangePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的DateRangePickerDialog是一种弹出窗口,只不过窗口的内容固定显示为…...

数据库合并操作:深入理解 MERGE INTO 语句

在数据管理和操作中&#xff0c;我们常常面临着将源数据合并到目标表中的需求。无论是对现有记录进行更新&#xff0c;还是对缺失的记录进行插入&#xff0c;甚至有时候需要删除不再符合条件的记录&#xff0c;这些操作通常都需要多条 SQL 语句来完成。然而&#xff0c;SQL 中有…...

联发科MTK8788_MT8788安卓核心板安兔兔跑分_安卓主板方案商

MT8788安卓核心板具有集成的蓝牙、fm、WLAN和gps模块&#xff0c;是一个高度集成的基带平台&#xff0c;包括调制解调器和应用处理子系统&#xff0c;启用LTE/LTE-A和C2K智能设备应用程序。该芯片集成了工作在2.0GHz的ARM Cortex-A73、最高可达2.0GHz的ARM Cortex-A53和功能强大…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...