Web安全总结

news/2024/5/20 10:47:41/文章来源:https://blog.csdn.net/weixin_52444045/article/details/131070633

目录

  • 网站架构
    • 一般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.luyixian.cn/news_show_690748.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python如何空一行:介绍

Python如何空一行:介绍 在Python编程中,经常需要在输出文字或代码时进行空行分隔。一个常用的场景就是在代码中加入注释,将注释与代码分开,使代码逻辑更加清晰易懂。在某些情况下,也需要在输出文字时进行空行分割&…

ChatGPT-Plugins-Searchable

ChatGPT Plus 用户应该都知道Plus已经开放了插件功能,但是在插件商店里存在一个较大的问题插件数量超过100款,却没有便捷的搜索功能。 而我们在查找一款插件时,需要从插件商店的第一页点击到最后一页一个个找,显然这非常的麻烦。 …

JUC基础-0606

9.ReentrantReadWriteLock读写锁 9.1 锁的基本概念 悲观锁:不支持并发,效率低,但是可以解决所有并发安全问题 乐观锁:支持并发读,维护一个版本号,写的时候比较版本号进行控制,先提交的版本号…

【Vue】三:Vue组件: 组件使用和组件嵌套

文章目录 1.第一个组件1.1不使用组件前1.2创建组件1.3注册组件1.4使用组件1.5 细节 2.组件嵌套 1.第一个组件 1.1不使用组件前 1.2创建组件 Vue.extends({该配置项和new Vue的配置项几乎相同})区别: (1)创建Vue组件的时候,不能使…

Kubernetes之pod

Kubernetes之pod 在通过docker运行程序时,我们通常会制作Dockerfile文件构建镜像。也可以基于某个镜像运行容器在容器中安装组件之后,再基于容器生成镜像 使用如下命令可生成镜像,想了解更多参数请添加–help docker build -f Dockerfile路…

【Leetcode -138.复制带随机指针的链表 -2130.链表最大孪生和】

Leetcode Leetcode -138.复制带随机指针的链表Leetcode -2130.链表最大孪生和 Leetcode -138.复制带随机指针的链表 题目:给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构…

4种普遍的机器学习分类算法

朴素贝叶斯分类 朴素贝叶斯分类是基于贝叶斯定理与特征条件独立假设的分类方法,发源于古典数学理论,拥有稳定的数学基础和分类效率。它是一种十分简单的分类算法,当然简单并不一定不好用。通过对给出的待分类项求解各项类别的出现概率大小&a…

企业应该如何选择适合自己的直播平台?

企业应该如何选择适合自己的直播平台?本文将从功能需求、可靠性与稳定性、用户体验、技术能与售后服务能力等方面进行综合考虑,帮助您做出明智的决策,或是说提供选型方面的参考。 企业在选择一家直播平台时应考虑以下因素: 1. 企…

【链表的分类】

链表是一种常用的数据结构,它由一系列节点组成,每个节点包含一个数据元素和指向下一个节点的指针。根据节点的连接方式和节点的性质,链表可以分为多种类型。 单向链表(Singly Linked List) 单向链表是最基本的链表类…

PyGame游戏编程

Python非常受欢迎的一个原因是它的应用领域非常广泛,其中就包括游戏开发。而是用Python进行游戏开发的首选模块就是PyGame。 1. 初识Pygame PyGame是跨平台Python模块,专为电子游戏设计,包含图像、声音等,创建在SDL(…

sms开发文档

sms系统设计参考毕业设计-----------学生选课管理系统的设计 一、使用axios 来实现网页中ajax请求 首先说到axios,是一个类库,他的底层基于ajax库,通常用于ajax请求 ajax又是什么 ajax是一种创建快速动态网页的技术, 传统的页…

LeetCode 24. 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,3,4] 输出:[2,1,4…

chatgpt赋能python:Python如何使用空行优化SEO

Python 如何使用空行优化 SEO 在网页排名算法中,空行的使用可以对网页的排名产生影响。在 Python 中,空行的使用也被用来优化代码和提高代码的可读性。本文将介绍如何在 Python 中使用空行来优化代码和优化 SEO。 空行的作用 在 Python 中&#xff0c…

直播问答功能(互动功能接收端JS-SDK)

功能概述 本模块主要用于展示问答模块。 初始化及销毁 在实例化该模块并进行使用之前&#xff0c;需要对SDK进行初始化配置&#xff0c;详细见参考文档。 在线文件引入方式 // script 标签引入&#xff0c;根据版本号引入JS版本。 <script src"https://websdk.vi…

OA系统,企业数字化转型的重要工具,用现成还是自己搭建呢

什么是OA系统 OA系统是办公自动化系统的简称&#xff0c;它是指一种基于计算机技术的办公工作管理系统&#xff0c;用于协调和规划企业内部各部门的信息发布、通信、人员流动、文档管理等方面的工作。它可以有效地提高企业办公效率和工作效益&#xff0c;优化企业内部沟通协作…

Java之旅(五)

运算符 算术运算符 加法&#xff08;&#xff09;减法&#xff08;-&#xff09;乘法&#xff08;*&#xff09;除法&#xff08;/&#xff09;取余&#xff08;%&#xff09;一元运算符 自增运算符&#xff08;&#xff09;自减运算符&#xff08;--&#xff09;变量前就先运…

元宇宙应用领域-教育

教育是一个国家发展的基础&#xff0c;在科技发展的时代&#xff0c;元宇宙将会帮助教育行业实现跨越式发展。 元宇宙与教育的结合将会对传统的教学模式带来翻天覆地的变化。它能将线上教学、线下体验、远程互动等优势集于一身&#xff0c;也能把教师从繁重的重复劳动中解放出…

公司来了个新的测试员,本以为是个菜鸡,没想到......

最近公司来了个新同事&#xff0c;学历并不高&#xff0c;而且大学也不是计算机专业的&#xff0c;今年刚满30岁。。 本以为也是来干点基础的活混混日子的&#xff0c;结果没想到这个人上来就把现有项目的性能测试了一遍&#xff0c;直接给公司节省了不少成本&#xff0c;这种…

自定义组件中,使用onLoad,onShow生命周期失效问题

的解决方法 自定义组件中&#xff0c;使用onLoad,onShow生命周期失效问题 自定义组件中&#xff0c;使用onLoad,onShow生命周期失效问题 官方文档可查阅到&#xff1a; 页面生命周期仅在page中的vue页面有效&#xff0c;而单独封装的组件中【页面周期无效】&#xff0c;但是Vu…

Python常考基础面试题

文章目录 Python基础面试题1、 Python 数据结构有哪些2、Python 中列表和元组的区别是什么&#xff1f;元组是不是真的不可变&#xff1f;3、什么是生成器和迭代器&#xff1f;它们之间有什么区别&#xff1f;迭代器生成器 4、什么是闭包&#xff1f;装饰器又是什么&#xff1f…