Web安全总结

news2025/5/13 2:35:10

目录

  • 网站架构
    • 一般web服务器结构
    • 相比于传统的网络攻击,基于web的攻击有什么不同?
    • HTTP协议
    • HTTP响应拆分攻击
    • HTTPS
    • 针对HTTPS协议的攻击
    • 那么如何保证证书的唯一性?
  • HTTP会话
    • Cookie和Session的关系
    • HTTP会话攻击
    • 解决方案
  • Web访问中的隐私问题
  • Web应用程序攻击
    • XSS跨站脚本攻击
    • CSRF跨站请求伪造
    • SQL注入攻击
  • Web浏览器安全
    • 安全性措施
    • 渲染引擎 Rendering Engine
    • Web浏览的基本安全策略
    • DNS重绑定 DNSrebinding
  • Web应用防火墙
    • 新一代Web应用防火墙
    • 网站系统(Web应用)的体系结构
    • 网站系统的脆弱性与安全威胁

本篇为课程总结,内容来自互联网和课程PPT

网站架构

一般web服务器结构

首先来看一个web服务器典型的网络拓扑结构

图中的IDS是用来检测办公网络的,也可以用来保护web服务器,放在防护墙之后镜像流量就可以

FIREWALL为网络防护墙,工作在传输层,检测数据报文的头部字段,匹配ip和端口是否合法。通过过滤网络流量来保护网络免受未经授权的访问、攻击和恶意软件等威胁。

WAF为web应用防火墙,工作在应用层,只属于web应用的防火墙,检测数据报文的载荷是否为攻击行为。WAF 能够监控 Web 应用程序的流量,分析 Web 应用程序的请求和响应,对恶意流量进行检测和拦截,从而保护 Web 应用程序的安全。

IDS为入侵检测系统,只需要对流量进行审计即可,并不会做出拦截或者放行等行为,所以只需要将流量镜像进行分析即可,不用接触真实传输中的流量。IDS只需实现检测功能,不负责防御,所以往往与流量传输并联,或是部署在旁路上,只负责检测恶意流量和已经配置好的攻击模式,然后对管理员示警,不做具体响应。

IPS是入侵防御系统,相比IDS来说,有了拦截的能力,需要有拦截数据包的能力。IPS为了实现防御功能,所以往往与流量传输以串联形式配置,关键网络的入口出口处都需要设置。

IPS和IDS都被部署在防火墙之后的流量传输链路上。

相比于传统的网络攻击,基于web的攻击有什么不同?

传统的网络攻击,相当于主动攻击,要求攻击者必须去主动发起扫描,并且主动利用漏洞进行攻击。

基于Web的攻击,可以利用xss、csrf等攻击方式,实现受害者主动下载恶意代码或者访问恶意网站,并不会直接与受害者连接。

传统的网络攻击可以看作为推(Push-based)的模式,即攻击者主动发起扫描,寻找具有可以利用的安全漏洞的主机,一旦发现目标,则实施漏洞利用,完成基本攻击过程。

基于Web访问的网络攻击,可以看作为拉(Pull-based)的模式,即受害者访问内含恶意代码的站点,恶意代码被下载至受害者的主机并运行,从而完成基本攻击过程。

HTTP协议

HTTP协议主要依靠,客户端发送请求给服务器,服务器收到请求后返回响应给客户端的请求-响应基本模型

对于HTTP的基本认证,只采用了base64编码来传输用户名和口令。

对于HTTP的摘要认证,采用了消息摘要技术。消息摘要是一种哈希函数(Hash Function),它将任意长度的消息映射为一个固定长度的摘要(Digest)。在摘要认证中,服务器首先向客户端发送一个随机数(称为nonce),客户端使用该随机数和用户密码生成一个消息摘要并发送给服务器。服务器使用相同的算法生成一个摘要,然后比较两个摘要是否相同。

HTTP响应状态码:

 1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码

 2xx (成功)
表示成功处理了请求的状态代码

3xx (重定向)
表示要完成请求,需要进一步操作

4xx(请求错误)
表示请求可能出错,妨碍了服务器的处理

5xx(服务器错误)
表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

HTTP响应拆分攻击

HTTP响应拆分攻击是针对响应包,将响应包的头部字段,利用换行符(\r\n)或其他控制字符,使得响应被拆分成两个或多个响应。

使得浏览器或者代理服务器解析出攻击者构造的响应页面。实现此攻击需要在中间传输过程中拦截响应数据包。

CR(= %0a = \r),LF(= %0d = \n)

为什么会造成这种攻击?

首先是HTTP的输入过滤不严格,其次是HTTP协议采用明文传输数据。

为了保证通信过程中的完整性,提出了下面的HTTPS协议

HTTPS

HTTPS相比HTTP安全,是因为使用了TLS协议。

TLS协议是一种加密通信协议,用于保护HTTP通信的安全性。当客户端与服务器之间进行HTTPS通信时,TLS协议会在两端之间建立一条加密通道,确保数据传输的机密性、完整性和可信性。

为了使HTTPS协议正常运作,服务器必须拥有有效的PKI证书。

PKI证书是一种数字证书,用于证明服务器的身份和公钥,以便客户端可以验证服务器的合法性并建立安全通信。服务器可以从受信任的证书颁发机构(CA)处获得有效的PKI证书。

相比之下,客户端不一定需要拥有证书。在大多数情况下,客户端只需要验证服务器的证书,而不需要自己拥有证书。客户端可以使用内置的根证书颁发机构列表来验证服务器的证书,以确保建立安全通信。

TLS 1.2 工作过程:

针对HTTPS协议的攻击

由于HTTPS协议依靠证书认证服务器端,那么可以通过伪造证书来进行对https协议的攻击。

由于证书颁发机构不止一家,攻击者可以利用证书颁发机构给一个已经认证过的服务器再次颁发证书,那么攻击者就可以担任中间人,拦截并查看用户访问该服务器的数据报文。

那么如何保证证书的唯一性?

HTTP 公钥固定(已弃用)

HPKP:HTTP Public Key Pinning
提供了针对中间人攻击的强大防御,糅合了HTTPS、HSTS以及HSTS预加载技术
TOFU:   首次使用的信任 (Trust on First Use)

证书透明度(主流)

思路:     CA 公告其所签发的全部证书的日志
浏览器仅使用其发布在日志服务器上的证书
使用 Merkle 哈希树可有效实现
公司可以扫描日志以发现非法签发证书

HTTP会话

HTTP协议是无状态的,因此无法保持同一个用户的登录状态,因此诞生了Cookie和Session。

无状态协议:指协议对事务处理没有记忆能力

Cookie和Session的关系

Cookie是客户端浏览器存储的,是方便在后续的HTTP请求中将其发送至服务器端。

Session是在服务器端存储的,Web应用程序可以使用该Session ID来查找用户的Session数据,以便在多个页面之间共享状态信息、存储用户的登录状态等。

Cookie和Session通常一起使用,以实现Web应用程序中的用户身份验证和状态管理。当用户首次访问Web应用程序时,服务器会创建一个Session,并将该Session ID存储在一个Cookie中,以便在后续的HTTP请求中将其发送回服务器。Web应用程序可以使用该Session ID查找用户的Session数据,并在多个页面之间共享状态信息、存储用户的登录状态等

Cookie机制是在客户端保持状态的方案,可以存储用户端会话状态。
Session机制是在客户端与服务器之间保持状态的解决方案。 服务器端保持状态的方案在客户端也需要保存一个标识,Session机制可以借助Cookie机制来达到保存标识。
在这里插入图片描述

除了Cookie和Session还有其他存储会话的方式,例如,URL重写,表单隐藏字段。

HTTP会话攻击

目标是窃取会话ID,劫持HTTP会话。来达到已受害者的身份登录服务端。

攻击方法有以下几种:

  • 截获
  • 猜测
  • 暴力攻击
  • 固定 使用户使用给定的会话ID

会话固定攻击的场景:
在这里插入图片描述
说明:

(1)攻击者与Web服务器建立合法连接
(2)攻击者获得会话ID或创建指定的会话ID
(3)攻击者向受害者发送带该会话ID的链接,受害者点击该链接
(4)服务器发现该会话已建立,无需创建新会话
(5)受害者向服务器提供其登录信息
(6)由于已知会话ID,攻击者可以访问受害者的帐户

解决方案

  • Web应用程序可以实现有效的会话确知攻击防护,而Web服务器仅能确保会话标识不会受到暴力攻击或推测攻击
  • 严格会话管理策略,拒绝非服务器产生的会话标识
    Web应用程序应仅在用户成功认证之后再产生新的会话标识,
    一旦用户登录之后,重新生成会话标识。
  • 会话标识绑定到IP地址并不能解决所有问题
    对于重要应用,会话标识应该绑定到SSL客户端证书,超时或登出后,会话应该清除
  • 用户应该使用登出选项以清除当前和其他的会话
  • 采用绝对的会话超时策略

Web访问中的隐私问题

Cookies跟踪用户浏览网页行为

Cookies 可被用来:

  • 跟踪用户在给定网站的行为 (第一方 cookies)
  • 跟踪用户跨多个网站的行为 (第三方 cookies),但用户并没有选择访问跟踪者网站 (!)
  • 跟踪可能对用户不可见: 并非显示和激活 HTTP GET 到跟踪者网站, 可能是不可见的链接

Web应用程序攻击

下面依次介绍主要的Web安全攻击方法
在这里插入图片描述

XSS跨站脚本攻击

Web应用中的计算机安全漏洞,攻击者利用XSS漏洞旁路掉同源策略。
XSS攻击的危害包括

  • 盗取各类用户帐号
  • 读取、篡改、添加、删除敏感数据
  • 非法转账
  • 强制发送电子邮件
  • 网站挂马
  • 控制受害者机器向其它网站发起攻击

XSS 是利用用户对网站的信任展开攻击

XSS主要有以下三种场景:

反射性XSS
在这里插入图片描述
存储型XSS
在这里插入图片描述
DOM型XSS (数据为传递到服务端)
在这里插入图片描述
XSS防范方法

  • 内容安全策略 (CSP)
    CSP的主要目标是减少和报告XSS攻击.
  • 服务器端防范措施-“限制、拒绝、净化”
    输入验证: 对用户提交数据进行尽可能严格的验证与过滤
    输出净化: HTMLEncode()方法
    消除危险的输入点
  • 客户端防范措施
    提高浏览器访问非受信网站时的安全等级
    关闭Cookie功能,或设置Cookie只读(IE6 SP1 HTTPonly cookie)
    安全意识和浏览习惯

CSRF跨站请求伪造

CSRF攻击通过在授权用户访问的页面中包含链接或者脚本的方式工作

基本特性: 利用网站对用户的信任展开攻击

常见特性:

  • 依靠用户标识危害网站
  • 欺骗用户的浏览器发送HTTP请求给目标站点
  • 已经通过cookie认证的用户将在完全无知的情况下发送HTTP请求到那个信任他的- 站点,进而进行用户不愿做的行为。
  • 通常使用图片攻击。

攻击场景:
在这里插入图片描述
CSRF防范方法

  • 秘密校验令牌
  • Referer 验证
  • 自定义 HTTP头部
  • 同站(sameSite) cookie

SQL注入攻击

SQL注入攻击是指攻击者利用Web应用程序数据层存在的输入验证不完善型安全漏洞,通过向Web应用程序的输入字段中注入SQL语句,从而实现对数据库的非法操作或者获取敏感数据的一类攻击技术。

攻击场景:
在这里插入图片描述

SQL注入攻击对Web应用程序的威胁

SQL注入攻击对Web应用程序的威胁非常大,因为它可以绕过应用程序的身份验证、授权和访问控制等安全机制,直接对数据库进行操作,导致数据泄露、数据损坏、应用程序崩溃等严重后果。

相当大部分Web应用程序使用后台数据库,动态产生内容
SQL注入攻击: 利用Web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。

SQL注入漏洞机制

用户输入没有被正确地过滤:转义字符(引号、反引号、双下划线、分号、百分号)
没有进行严格类型检查:未判断输入是否预定类型

SQL注入防范方法

  • 不要自己直接构造 SQL 命令 !
  • 使用:
    参数化 SQL
    对象关系映射器 (ORM,Object Relational Mapper)

Web浏览器安全

Chrome浏览器,2008年9月正式发布,采用了Webkit 的网页渲染引擎

Chrome 采用多进程的架构

将每个页面分离成单个的进程

多个程序同时执行而互不影响,当资源过高或崩溃时,不会因为一个停顿而整个程序当掉。

javascript. 采用V8

安全性措施

黑名单
定期更新网络钓鱼和恶意软件的黑名单,第一时间反馈给用户所要访问的网页的危险性。

沙盒(Sandboxing)
每一个标签页都是一个沙盒(sandbox),以防止“恶意软件破坏用户系统”或“利用分页影响其他分页”。

插件(Plugins)
插件通常并没有统一的标准,且无法像标签页般沙盒化。插件在不同的处理程序中被执行。

无痕浏览(Incognito)
保护用户浏览网页的隐私

更新(Update)
每五小时自动更新主程序,更新后会在下一次启动中使用。

渲染引擎 Rendering Engine

渲染引擎负责处理网页的内容、样式和布局,以及将它们显示在屏幕上。不同的渲染引擎可能对同一HTML文档的渲染效果有所不同。

负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,输出至显示器或打印机。

渲染引擎对于网页的语法解释有差别,因此对同一HTML文档的渲染效果也可能不相同。

主要的渲染引擎 
Trident: IE6/IE7/IE8
Gecko:  Firefox
Webkit: Safari/Chrome
Blink: Chrome

Web浏览的基本安全策略

同源策略(Same Origin Policy)是浏览器中的一项主要安全措施,用于限制来自不同源的脚本之间的交互。

在同源策略中,同一个“源”指的是主机名、协议和端口号的组合,可以看作是某个Web页面或浏览器所浏览的信息的创建者。

同源策略要求脚本只能与同一“源”下的资源进行交互,不能读取或修改来自不同“源”的数据,从而防止恶意脚本通过跨域攻击窃取用户数据或者进行其他恶意操作。

同源策略是Web安全的基础之一,可以有效保护用户的隐私和安全。

同源策略(Same Origin Policy) : 浏览器中的主要安全措施。
“源”: 主机名、协议和端口号的组合;
“源”可看作是某个web页面或浏览器所浏览的信息的创建者。 

在这里插入图片描述

DNS重绑定 DNSrebinding

DNS重绑定是一种存在于浏览器及插件上的漏洞,可被用来绕过防火墙或暂时劫持客户的IP地址,使得浏览器转为开放网络的代理。

攻击者利用DNS重绑定漏洞,可以将浏览器所访问的目标服务器映射为攻击者所控制的源,从而使得攻击者可以通过浏览器访问目标服务器,绕过了目标服务器的访问控制机制。

攻击者可以利用DNS重绑定漏洞进行各种攻击,如窃取用户的敏感信息、执行恶意代码等。

为了防止DNS重绑定攻击,用户可以通过升级浏览器、禁用不必要的插件、使用DNS缓存等方式来增强浏览器的安全性。

网站管理员也可以采取一些措施,如设置CSP策略、使用HTTPS协议、限制跨域访问等,来防止DNS重绑定攻击。

DNS可造成的影响

  • 规避防火墙.
    访问内部网络
    获取保密信息
    利用未打补丁的漏洞
    滥用内部开放服务
  • 劫持 IP 地址
    展开点击骗局
    发送垃圾邮件
    破坏基于IP的认证

攻击过程

  1. 攻击者注册一个域,并由其控制的DNS服务器解析;服务器配置以一个很短的TTL参数,以防止响应被缓存;
  2. 第一个DNS响应包含带有恶意代码的服务器的 IP 地址;后继的DNS响应包含伪造的私有网络的IP地址,该IP为攻击者的攻击目标,位于防火墙的后面;
  3. 由于两个响应均为完全合法的DNS响应, 授权被隔离的脚本访问私有网络内的主机;通过返回多个短生存期的IP地址,DNS 服务器可以让脚本扫描本地网络或展开其他的恶意行为.基本步骤:

Web应用防火墙

在下面这种场景中,网络防火墙是起不到作用的,无法拦截HTTP(S)流数据

在这里插入图片描述
这时候就诞生了Web应用防火墙,专门针对Web应用做防御

Web应用防火墙有以下特性:

  • 专门针对HTTP与HTML
  • 在网络流解密后展开工作, 可以终止 SSL
  • 阻止成为可能

新一代Web应用防火墙

在这里插入图片描述

WAF通过接入Web访问流量,进行协议解析深度解码,调动语义分析访问控制自定义插件引擎进行分析,根据预设策略允许或阻断访问流量。

网站系统(Web应用)的体系结构

在这里插入图片描述
客户端层:客户端层是Web应用的最外层,包括浏览器、移动设备等,它们通过HTTP协议向Web服务器发送请求,并接收服务器返回的响应。

Web服务器层:Web服务器层是Web应用的中间层,主要负责接收和处理客户端发送的请求,并返回响应。Web服务器层通常使用Web服务器软件,如Apache、Nginx等,来处理HTTP请求。

应用服务器层:应用服务器层是Web应用的核心层,主要负责处理业务逻辑和数据处理。应用服务器层通常使用Web应用服务器,如Tomcat、Jboss、WebLogic等,来提供支持。

数据库层:数据库层是Web应用的数据存储层,主要负责存储和管理Web应用的数据。数据库层通常使用关系型数据库管理系统(RDBMS),如MySQL、Oracle、SQL Server等。

集成层:集成层是Web应用的组件集成层,主要负责将不同的组件(如第三方组件、Web服务等)集成到Web应用中,以扩展Web应用的功能和性能。

安全层:安全层是Web应用的安全保障层,主要负责保护Web应用免受各种安全威胁,如SQL注入、跨站点脚本攻击(XSS)、跨站点请求伪造(CSRF)等。安全层通常使用Web应用程序防火墙(WAF)等安全设备或技术来提供保护。

网站系统的脆弱性与安全威胁

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/617907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【读书笔记】《贫穷的本质》- [印度] Abhijit Banerjee / [法] Esther Duflo

文章目录 前言第一章 再好好想想第一部分 生活案例第二章 饥饿人口已达到10亿?第三章 提高全球居民健康水平容易吗?第四章 全班最优 前言 扶贫政策方面充斥着会取得立竿见影的效果的泡沫,事实证明这一点儿也不奇怪。要想取得进展,…

sed:命令讲解一

sed的使用: sed的使用 一、sed1.定义:2.工作流程:读取,执行,显示。3.基本操作格式:4.sed操作符:5.扩展: 一、sed 1.定义: 一种流编辑器,会在编辑器处理数据…

浅谈发改委强化电力需求侧管理缓解电力系统峰值压力方案设计 安科瑞 许敏

摘要:近年来全国用电负荷特别是居民用电负荷的快速增长,全国范围内夏季、冬季用电负荷“双峰”特征日益突出,恶劣气候现象多发增加了电力安全供应的压力。具有随机性、波动性、间歇性特征的可再生能源大规模接入电网对电力系统的稳定性带来新…

MySQL 索引及查询优化总结

一个简单的对比测试 前面的案例中,c2c_zwdb.t_file_count表只有一个自增id,FFileName字段未加索引的sql执行情况如下: 在上图中,typeall,keynull,rows33777。该sql未使用索引,是一个效率非常低…

chatgpt赋能python:Python安装HanLP:一个强大的NLP工具

Python安装HanLP:一个强大的NLP工具 HanLP是一个基于Python编写的神经网络自然语言处理工具,它提供给我们强大的文本处理和分析能力。在这篇文章中,我们将介绍如何在Python中安装并使用HanLP工具。如果你是一个文本处理和分析的爱好者或者工…

chatgpt赋能python:Python安装到U盘——实现随时随地的编程

Python安装到U盘——实现随时随地的编程 Python是一种广泛使用的动态解释型编程语言,简单易学,适用性广泛,被广泛应用于数据分析、Web开发、人工智能等领域。想要充分发挥Python的优势,随时随地进行编程,我们可以将Py…

人工智能正迎来量子飞跃——

光子盒研究院 6月1日,量子计算领域的行业领导者IonQ公布了其应用量子计算机模拟人类认知的一项早期研究结果。这篇论文描述了世界上第一个公开的方法:研究团队已将一个基本的人类认知模型在量子硬件上运行,这为模仿人类思维方式的改进决策模型…

Day_42哈希表

目录 一. 关于哈希表 二. 如何实现哈希表 1. 散列函数 2. 散列表 3. 散列函数的构造方法 4. 处理冲突的方法 三. 代码实现 1. 构造函数构造哈希表 2. 哈希表的查找 四. 代码展示 五. 数据测试​编辑 六. 总结 一. 关于哈希表 在前面介绍的线性表的查找中,记录在表中的位置…

RabbitMQ入门案例之Simple简单模式

RabbitMQ入门案例之Simple简单模式 前言什么是Simple模式Simple模式操作RabbitMQ管理界面的部分介绍 前言 本文将介绍RabbitMQ的七种工作模式的第一种Simple模式的代码实现,编程工具使用的是IDEA,在RabbitMQ中的工作模式都是生产消费模型 生产者消费模型…

Android系统的Ashmem匿名共享内存子系统分析(4)- Ashmem子系统的 Java访问接口

声明 其实对于Android系统的Ashmem匿名共享内存系统早就有分析的想法,记得2019年6、7月份Mr.Deng离职期间约定一起对其进行研究的,但因为我个人问题没能实施这个计划,留下些许遗憾…文中参考了很多书籍及博客内容,可能涉及的比较…

【云原生】Docker镜像的创建

1.Dokcer镜像的创建 创建镜像有三种方法,分别为【基于已有镜像创建】、【基于本地模板创建】以及【基于Dockerfile创建】。 1.1 基于现有镜像创建 (1)首先启动一个镜像,在容器里做修改 docker run -it --name web centos:7 /…

2023年6月 国内大语言模型对比【国内模型正在崛起】

先说一下这个文章怎么来的。因为朋友问我大语言模型可以生成公务员面试回答不,我说可以啊。之前看文心有这个服务。我想最近好几个模型也没用了测一把!结果!大吃一惊!我觉得我的三个傻孩子长大了!(chatglm1…

chatgpt赋能python:Python如何降低版本:提升代码兼容性与SEO效果

Python如何降低版本:提升代码兼容性与SEO效果 在大多数情况下,使用Python的最新版本是最好的选择。新版本通常提供更好的性能和更多的功能,同时也有更好的安全性和稳定性。然而,有些情况下,我们需要运行旧版本的Pytho…

chatgpt赋能python:Python字体如何调大?一篇全面的教程

Python字体如何调大?一篇全面的教程 什么是Python? Python是一种高级编程语言,一般被用于Web开发、数据分析和人工智能等领域。其编写简单、易读易学易维护,因此被广泛使用。 为什么要调大Python字体? 在Python编程…

imagine 关键词绘图( Midjourney )

前几天从网上看到的imagine 关键词绘图( Midjourney ),感觉挺好用,分享给大家: 一、基本关键词: 一个基本的提示可以简单到一个单词、短语或表情符号。 二、高级关键词: 可以包括一个或多个图像链接、多个文本短语或单词,以及…

内网安全:隧道技术详解

目录 隧道技术 反向连接技术 反向连接实验所用网络拓扑图及说明 网络说明 防火墙限制说明 实验前提说明 实战一:CS反向连接上线 - 拿下Win2008 一. 使用转发代理上线创建监听器 二. 上传后门执行上线 隧道技术 - SMB协议 SMB协议介绍 实战二&#xff1a…

chatgpt赋能python:Python安装到C盘有什么方便之处?

Python安装到C盘有什么方便之处? 在进行Python编程时,安装Python到C盘是一个非常常见的做法。那么,将Python安装到C盘有哪些好处呢?下面,让我们来一一介绍。 1. 方便快捷 安装Python到C盘的好处之一就是非常方便&am…

chatgpt赋能python:Python安装etree:提高XML处理效率的关键

Python安装etree:提高XML处理效率的关键 在Python开发中,XML是一种常用的数据格式。然而,Python标准库自带的ElementTree在大规模数据处理时可能会出现效率低下的情况。因此,我们可以使用第三方模块etree来提高XML处理的效率。 …

案例37:基于Springboot旅游网站系统开题报告设计

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

Linux内核文件读取流程

本文代码基于Linux5.10。 当上层调用read函数读取一个文件时, Linux 内核究竟如何处理? 本文主要介绍这个问题 数据结构 address_space linux 的文件在磁盘上可能是不连续的, 但文件读取又需要将文件当成一个连续的字节流, 为…