安全入门day.02

news2024/11/15 17:28:45

一、环境部署

1、windows版本

2、Linux版本

二、WEB应用组成角色名词

1、开发语言

2、程序源码

3、中间件容器

4、数据库

5、服务器操作系统

6、第三方软件

三、WEB应用安全漏洞分类

1、SQL注入

2、文件安全

3、RCE执行

4、XSS跨站

5、CSRF/SSRF/CRLF

6、反序列化

7、逻辑越权

8、未授权访问

9、XXE/XML

10、弱口令

四、WEB请求返回过程解析

1、过程解析

(1)HTTP协议流程

(2)HTTPS协议流程

2、名词解释

(1)请求数据包

(2)请求方法

(3)请求头

(4)请求体

(5)响应包

 (6)响应头

(7)状态码

(8)代理服务器


一、环境部署

1、windows版本

这里使用小皮面板部署网页

小皮面板8.1版本下载链接:

https://public.xp.cn/upgrades/phpStudy_64.zip

小皮面板2018版本下载链接:

http://public.xp.cn/upgrades/PhpStudy2018.zip

(1)点击安装程序开始安装,在自定义选项中修改安装位置,根据自己实际安装位置设定,作者这里安装在C盘作为演示

(2)点击立即安装,等待进度条走完

(3)点击安装完成执行程序

(4)如果出现以下界面就是安装成功了

(5)根据设定的软件安装位置,部署网站,软件根目录下面有3个文件夹,第一个COM文件夹是小皮面板的配置文件,第二个Extensions文件夹是存放已经安装的软件环境,例如php、mysql和Apache等;第三个WWW文件夹是存放网页的地方,将想部署的网页放在WWW文件夹里

(6)这里以DVWA靶场作为案例,将DVWA解压缩后放在WWW文件夹里

        然后根据资源地址编写网页访问地址,WWW文件夹对应localhost、DVWA对应WWW下的文件夹、然后是文件夹下的资源

http://localhost/DVWA-2.3/setup.php

        注:2018版本小皮的界面与8.1版本不相同,2018版本不能修改mysql和web中间件的版本。并且2018版本WWW文件夹在PHPTutorial目录下,但是实际的访问地址是相同的。

        在浏览器中访问该资源地址,只要出现界面就是搭建成功

2、Linux版本

        在linux中需要根据linux的不同发行版运行不同的脚本

Centos安装脚本
yum install -y wget && sudo wget -O install.sh https://dl.xp.cn/dl/xp/install.sh && sudo bash install.sh

Ubuntu安装脚本
sudo wget -O install.sh https://dl.xp.cn/dl/xp/install.sh && sudo bash install.sh

Debian安装脚本
sudo wget -O install.sh https://dl.xp.cn/dl/xp/install.sh && sudo bash install.sh

        运行完成脚本后会出现一个访问地址,就可以在浏览器中进行图形化管理,这里以Ubuntu为例进行演示。

(1)执行安装脚本

(2)安装完成

(3)根据面板地址访问管理面板,本地虚拟机访问内网面板地址,云主机访问外网面板地址

(4)创建网站

按照要求填写数据,这里可以得到安装地址是根目录

根据域名或者IP地址编写访问地址,这里域名需要自己在C:\Windows\System32\drivers\etc\hosts文件中写出域名与IP地址的对应关系(有可能所设域名是一个已备案的网站),然后根据域名访问资源或者也可以根据IP地址访问资源

www.test.com
(虚拟机演示)
http://192.168.30.130/

二、WEB应用组成角色名词

1、开发语言

        WEB应用开发语言是指用于开发Web应用程序的编程语言和技术栈。这些语言和技术栈为开发者提供了构建、部署和维护Web应用程序所需的各种工具和功能。常见的Web应用程序的编程语言有asp、php、aspx、jsp、java、python、ruby、go、html、javascript等。

2、程序源码

        Web应用程序源码是构建和定义Web应用程序的关键组成部分,它是一系列使用各种编程语言编写的指令和代码集合。这些代码定义了Web应用程序的结构、功能、样式以及用户交互方式。

3、中间件容器

        中间件是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。它处在操作系统和更高一级应用程序之间,将应用程序运行环境与操作系统隔离,使得应用程序开发者不必为更多系统问题忧虑,而直接关注于应用程序在解决问题上的能力。常见的中间件有IIS、Apache、Nginx、Tomcat、Weblogic、Jboos、glasshfish等。

4、数据库

        数据库是一个以有组织的方式存储的数据集合,也被称为数据存储库(Data Store)。它能够存储大量结构化和非结构化的数据,包括文本、数字、图像、音频等各种类型的信息。常见的数据库有Access、Mysql、Mssql、Oracle、db2、Sybase、Redis、MongoDB等。

5、服务器操作系统

        服务器操作系统是安装在大型计算机上的操作系统,主要用于管理服务器硬件和软件资源,以及向多个程序提供服务。它是企业IT系统的基础架构平台,也是按应用领域划分的三种操作系统之一(另外两种是桌面操作系统和嵌入式操作系统)。目前常见的服务器操作系统有Windows Server系列和Linux系列。

6、第三方软件

        第三方软件指的是由该软件的原始生产商(或称为“官方”)以外的其他组织或个人开发的相关软件。这些软件通常针对某种软件或应用在功能上的不足或漏洞进行开发,以提供额外的功能、优化或改进。例如phpmyadmin、VNC、Openssh等。

三、WEB应用安全漏洞分类

1、SQL注入

        SQL注入是一种网络安全攻击手段,具体指的是web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,从而在管理员不知情的情况下实现非法操作。这种攻击方式欺骗数据库服务器执行非授权的任意查询,从而进一步获取相应的数据信息。

2、文件安全

        文件安全是指确保文件中所保存的信息的完整性、机密性和可访问性得到妥善保护的过程。这包括防止未经授权的用户访问或修改文件内容,以及确保只有被授权的用户能够按照规定的权限访问文件。

3、RCE执行

        RCE,即远程命令执行(Remote Command Execution)或远程代码执行(Remote Code Execution),是一个安全术语,主要用于描述一种网络安全攻击方式。在网络安全领域,RCE指的是攻击者通过某种手段,在远程计算机上执行特定的命令或代码,从而实现对目标系统的控制或非法操作。

4、XSS跨站

        XSS跨站,全称跨站脚本(Cross Site Scripting),为避免与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故缩写为XSS。这是一种网络安全攻击手段,具体指的是恶意攻击者往Web页面里插入恶意Script代码(通常是JavaScript),当用户浏览该页面时,嵌入在Web页面中的恶意代码会被执行,从而达到攻击用户的目的。

5、CSRF/SSRF/CRLF

(1)CSRF

        CSRF是一种网络攻击方式,攻击者利用用户在已登录的Web应用程序上的会话(Session)信息,通过伪造用户请求的方式,在用户不知情的情况下执行恶意操作。这种攻击也被称为“One-Click Attack”或“Session Riding”。

(2)SSRF

        SSRF是一种安全漏洞,允许攻击者构造恶意的请求,由服务器端发起,从而攻击内部网络或本地系统。这种攻击利用了服务器未对外部输入进行充分验证的漏洞。

(3)CRLF

        CRLF注入攻击是一种常见的网络安全漏洞,攻击者会利用应用程序对用户输入数据的不严格验证,通过注入恶意的CRLF序列来改变数据的处理方式,从而执行未经授权的操作。这种攻击方式通常发生在Web应用程序中,攻击者可以通过向请求行或首部字段注入恶意的CRLF序列,来注入一些额外的首部字段或报文主体,并在响应中输出。这可能会导致数据泄露、会话劫持、响应篡改等严重后果。

6、反序列化

        反序列化攻击(Deserialization Vulnerability)是一种网络安全攻击方式,它利用了应用程序在反序列化操作中的漏洞,允许攻击者将恶意构造的序列化对象注入到应用程序中,从而执行未授权的操作或以应用程序的身份执行恶意代码。

7、逻辑越权

        逻辑越权是一种安全漏洞,它指的是在用户认证和授权过程中,由于逻辑处理不当,导致用户能够跳过自己的权限限制,去访问或操作同等级用户或者上级用户的资源。这种漏洞通常是由于开发人员在编写程序时,对数据的增删改查请求处理不当,过分相信客户端传输的数据,未进行严格的权限判定而导致的。

8、未授权访问

        未授权访问(Unauthorized Access)是指用户或系统在没有获得合法授权的情况下,对受保护的资源、系统或服务进行了访问。这种访问行为违反了安全策略、权限控制或访问控制列表(ACL)的规定,可能导致数据泄露、服务中断、系统被滥用或恶意攻击等严重后果。

9、XXE/XML

(1)XXE(XML External Entity Injection)全称为XML外部实体注入,是一种针对应用程序解析XML输入类型的安全漏洞。当应用程序在解析XML数据时,如果允许引用外部实体,并且没有正确地限制或过滤这些外部实体的加载,就可能导致XXE漏洞的产生。

(2)XML(Extensible Markup Language)是一种标记语言,用于定义数据的结构和表示方法。它允许用户定义自己的标签和文档结构,以便更好地描述和传输数据。

10、弱口令

        弱口令(Weak Password)在网络安全领域中,指的是那些容易被猜测或破解的口令。这些口令通常缺乏足够的复杂性和随机性,使得攻击者能够轻易地通过暴力破解、字典攻击或其他技术手段获取访问权限。

四、WEB请求返回过程解析

1、过程解析

(1)HTTP协议流程

1)用户在浏览器中输入网址或点击链接,请求访问一个 HTTP 网站。

 2)浏览器解析网址,获取主机名(域名)和端口号,默认为 80(HTTP 默认使用的端口)。

 3)浏览器向 DNS 服务器发送一个 DNS 查询请求,以获取主机名对应的 IP 地址。

 4)DNS 服务器返回主机名对应的 IP 地址给浏览器。

 5)浏览器与服务器之间建立 TCP 连接。这个过程叫做 TCP 握手,包括三次握手(SYN、SYN-ACK、ACK)。在握手期间,浏览器和服务器之间协商连接参数。

 6)完成 TCP 握手后,浏览器和服务器之间建立了一个 TCP 连接通道。

 7)浏览器向服务器发送一个 HTTP 请求,包括请求的资源路径、请求头和可能的请求体。

 8)服务器收到请求后,进行相应的处理,例如获取网页内容、执行服务器端脚本等。

 9)服务器将处理结果封装成一个 HTTP 响应,包括响应头和响应体。

 10)服务器将响应发送给浏览器,通过建立的 TCP 连接通道进行传输。

 11)浏览器收到服务器发送的响应后,解析响应,根据响应中的内容进行相应的处理,例如渲染网页内容、执行 JavaScript 等。

 12)完成页面加载和渲染后,用户可以在浏览器中查看和操作网页内容。

 13)TCP 连接持续开放,可以进行后续的请求和响应交互。

(2)HTTPS协议流程

1)用户在浏览器中输入网址或点击链接,请求访问一个 HTTPS 网站。

2)浏览器解析网址,获取主机名(域名)和端口号,默认为 443(HTTPS 默认使用的端口)。

3)浏览器向 DNS 服务器发送一个 DNS 查询请求,以获取主机名对应的 IP 地址。

4)DNS 服务器返回主机名对应的 IP 地址给浏览器。

5)浏览器与服务器之间建立 TCP 连接。这个过程叫做 TCP 握手,包括三次握手(SYN、SYN-ACK、ACK)。在握手期间,浏览器和服务器之间协商连接参数。

6)完成 TCP 握手后,浏览器会给服务器发送一个加密通信准备就绪的消息。

7)服务器收到消息后,将自己的数字证书和公钥发送给浏览器。

8)浏览器收到服务器的证书后,开始进行证书验证。浏览器会检查证书是否由可信任的证书颁发机构签发,证书是否过期,域名是否与证书匹配等。如果验证通过,继续下一步;如果验证失败,浏览器会显示警告信息,提示用户存在安全风险。

9)如果证书验证通过,浏览器生成一个随机的对称密钥,使用服务器的公钥进行加密,并将加密后的密钥发送给服务器。

10)服务器收到浏览器发送的加密后的对称密钥后,使用自己的私钥进行解密,得到对称密钥。

11)浏览器和服务器都拥有了相同的对称密钥,用于后续的数据传输加密和解密。

12)浏览器向服务器发送一个加密的 HTTP 请求,包含请求的资源路径、请求头和可能的请求体。

13)服务器收到请求后,进行相应的处理,例如获取网页内容、执行服务器端脚本等。

14)服务器将处理结果封装成加密的 HTTP 响应,包括响应头和响应体,并使用之前协商好的对称密钥进行加密。

15)加密后的响应通过加密连接发送给浏览器。

16)浏览器收到加密的响应后,使用之前协商好的对称密钥进行解密。

17)浏览器解析响应,根据响应中的内容进行相应的处理,例如渲染网页内容、执行 JavaScript 等。

18)完成页面加载和渲染后,用户可以在浏览器中查看和操作网页内容。

2、名词解释

(1)请求数据包

        请求数据包是网络通信过程中的一种信息单元,用于将用户或应用程序的请求信息从发送端传输到接收端(如服务器)。这些数据包包含了请求的具体内容、目标地址以及其他控制信息,以确保数据包能够正确、高效地到达目的地。

请求数据包

(2)请求方法

        请求方法(Request Methods)是在网络通信中,特别是HTTP协议中,用于指定客户端希望服务器对资源执行的操作类型的一种标识。常见的请求方法有GET、POST、PUT、DELETE、HEAD、OPTIONS等。

(3)请求头

        请求头(Request Headers)是HTTP请求消息中的一个重要组成部分,它包含了关于请求的各种元数据信息。当客户端(如浏览器)向服务器发送HTTP请求时,除了请求行(Request Line)和可选的请求体(Request Body)之外,还会包含一系列请求头字段。这些字段为服务器提供了关于请求的额外信息,有助于服务器正确处理和响应请求。

1)Accept:告诉服务器客户端能够接受的媒体类型(MIME类型),如text/htmlapplication/json等。这有助于服务器根据客户端的偏好返回适当格式的响应。

2)Accept-Encoding:指示客户端支持的内容编码类型,如gzip、deflate等。这允许服务器将响应的内容进行压缩,以减少传输的数据量,提高传输效率。

3)Accept-Language:表明客户端优先接受的自然语言。这有助于服务器根据客户端的语言偏好返回相应的内容,实现内容的国际化。

4)Authorization:包含客户端发送给服务器的认证信息,如Bearer token、Basic authentication等。这用于验证客户端的身份,确保请求的安全性。

5)Cache-Control:指定请求和响应遵循的缓存机制。它可以控制缓存的行为,如是否缓存响应、缓存的有效期等。

6)Connection:指定客户端与服务器之间连接的选项,如keep-alive表示保持连接以便后续请求,close表示请求结束后关闭连接。

7)Content-Length(通常出现在POST或PUT请求中):表示请求体的长度(字节数)。这有助于服务器读取完整的请求体内容。

8)Content-Type:表示请求体的媒体类型。这告诉服务器请求体中包含的数据类型,如application/jsonapplication/x-www-form-urlencoded等。

9)Cookie:包含由服务器发送的cookie信息,这些信息会在后续的请求中自动包含,以便服务器识别用户或保存状态信息。

10)Host:指定请求的资源所在的服务器的主机名和端口号。这是HTTP/1.1协议中必须包含的请求头字段。

11)Referer:指示当前请求是从哪个页面链接过来的。这有助于服务器了解请求的上下文,进行日志记录、统计分析等。

12)User-Agent:包含发出请求的客户端(如浏览器)的类型、版本、操作系统等信息。这有助于服务器了解客户端的环境,进行内容协商、兼容性处理等。

(4)请求体

        请求体(Request Body)是HTTP请求中的一个部分,用于在客户端向服务器发送请求时,携带要提交给服务器的数据。当使用POST、PUT、PATCH等HTTP请求方法时,通常会包含请求体。请求体可以包含各种类型的数据,如表单数据、JSON、XML等,具体取决于请求的内容类型和服务器端的期望。

请求体

(5)响应包

        响应包(Response Packet)是在网络通信中,特别是在HTTP协议中,服务器对客户端的请求做出的回应所形成的数据包。当客户端(如Web浏览器)向服务器发送请求后,服务器会处理该请求,并将处理结果封装成一个响应包返回给客户端。响应包包含了服务器对请求的处理结果,是客户端获取所需数据或服务的直接来源。

响应包

 (6)响应头

        响应头紧随状态行之后,用于提供有关响应的额外信息,如内容类型、内容长度、服务器类型、缓存策略等。这些信息对于客户端来说非常重要,因为它们可以帮助客户端正确地处理响应内容。

1)Server:指明了处理请求的服务器软件名称和版本号。例如,Server: Apache/2.4.41 表示服务器使用的是Apache HTTP Server,版本号为2.4.41。

2)Date:表示响应生成的日期和时间(即服务器发送响应的日期和时间)。这个字段有助于客户端了解响应的新鲜度。

3)Content-Type:表示响应体的媒体类型。这告诉客户端实际返回的内容类型,如text/htmlapplication/json等。客户端会根据这个字段来决定如何解析和展示响应体内容。

4)Content-Length:表示响应体的长度(以字节为单位)。这个字段有助于客户端了解需要接收多少数据,以便正确读取和解析响应体。

5)Content-Encoding:如果响应体被服务器压缩,这个字段会指明使用的压缩编码类型,如gzipdeflate等。客户端需要根据这个字段来解压响应体内容。

6)Cache-Control:指定了响应的缓存策略。这个字段包含了多个指令,用于控制缓存的行为,如是否缓存响应、缓存的有效期等。

7)Connection:表示服务器是否希望保持连接打开,以便后续的请求可以通过同一个连接发送。Keep-Alive表示保持连接,而close表示请求结束后关闭连接。

8)ETag:是一个响应头的实体标签(Entity Tag)的标识符,它代表了一个特定版本的资源的标识符。这个字段用于缓存验证,当客户端发送请求时,可以在请求头中包含If-None-Match字段,并带上ETag的值,如果资源未发生变化,则服务器可以返回304 Not Modified状态码,而不必发送完整的响应体。

9)Last-Modified:表示资源的最后修改时间。这个字段有助于客户端了解资源的更新情况,以便在需要时重新请求资源。

10)Set-Cookie:如果服务器希望在客户端存储一些信息(如会话ID),它可以通过Set-Cookie字段来发送一个cookie。客户端会在后续的请求中自动包含这个cookie,以便服务器识别用户或保存状态信息。

11)Location:当响应状态码为3xx(重定向)时,这个字段会指明重定向的目标URL。客户端需要根据这个字段来发送新的请求到指定的URL。

12)Accept-Ranges:用于告知客户端服务器是否能处理范围请求,以指定获取服务器某部分的资源。常见的值有nonebytes

13)Age:资源缓存的年龄,也就是资源自缓存以来到现在已经过去了多长时间。这个字段有助于客户端了解缓存内容的新鲜度。

14)Vary:用于告知客户端响应可能会根据请求头中的某些字段的不同而有所变化。这有助于代理服务器和缓存服务器正确地缓存和分发响应内容。

响应头

(7)状态码

        状态码(Status Code)是HTTP协议中用于表示服务器对客户端请求响应结果的一种简短表示。状态码是一个三位数的整数,分为五个类别,每个类别都有其特定的含义和用途。当客户端向服务器发送HTTP请求时,服务器会根据请求的处理情况返回一个状态码,客户端根据这个状态码来判断请求是否成功,或者需要采取什么样的进一步操作。

1)1xx(信息性状态码):这些状态码表示请求已被接收,正在处理中,但还没有完成。这类状态码通常不会被实际使用,因为它们只是用于表示请求的中间状态。

2)2xx(成功状态码):这类状态码表示请求已成功被服务器接收、理解并接受。其中,200 OK是最常见的成功状态码,表示请求已成功处理并返回了请求的资源。

3)3xx(重定向状态码):这类状态码表示客户端需要采取进一步的操作才能完成请求。例如,301 Moved Permanently表示请求的资源已被永久移动到新的URL,客户端应使用新的URL发起请求;302 Found(虽然通常被误用为临时重定向,但标准定义上是用于找到资源但临时从不同的URI响应请求)和307 Temporary Redirect都表示请求的资源暂时位于不同的URI,客户端应临时使用新的URI进行访问。

4)4xx(客户端错误状态码):这类状态码表示请求包含语法错误或无法完成请求。例如,404 Not Found表示请求的资源在服务器上不存在;403 Forbidden表示服务器理解请求但拒绝执行;400 Bad Request表示请求报文中存在语法错误。

5)5xx(服务器错误状态码):这类状态码表示服务器在处理请求的过程中发生了错误。例如,500 Internal Server Error表示服务器遇到了一个未曾预料到的情况,导致它无法完成对请求的处理;502 Bad Gateway表示作为网关或代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应;503 Service Unavailable表示由于临时的服务器维护或过载,服务器当前无法处理请求。

(8)代理服务器

        代理服务器是一种网络服务器,它充当客户端和目标服务器之间的中间人,接受来自客户端的请求,并将其转发给目标服务器,然后将目标服务器的响应返回给客户端。

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

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

相关文章

基于RK3568 Android11 移除长按电源按键弹窗的对话框中的 [关机] 和 [紧急呼救] 选项(详细分析)

一般来说,与Android按键窗口事件相关的基本是与frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 这个文件有关。   因此先打开与输入相关的日志,如下:   然后重新编译烧录后查看打印的日志可以看…

Matcha-Tts:一种基于条件流匹配的快速Tts架构笔记

MATCHA-TTS: A FAST TTS ARCHITECTURE WITH CONDITIONAL FLOW MATCHING笔记 提出问题: 1、合成速度慢 提出方法: 首先,提出了一种改进的编码器-解码器TTS架构,在解码器中使用1D CNN和Transformer的组合。这样减少了内存消耗&am…

使用tailwindcss轻松实现移动端rem适配

本示例节选自小卷全栈开发实战系列的《Vue3实战》。演示如何用tailwindcss所支持的rem体系轻松实现一个仿b站移动端头部导航栏rem适配。 友情声明 学习分享不易,如果小伙伴觉得有帮助,点赞支持下。满30赞,将随文附赠录屏讲解,感谢…

linux shell 脚本入门到实战

目录 一、shell入门简介1.1什么是shell1.2shell编程注意事项1.3第一个shell脚本helloworld 二、shell环境变量讲解2.1shell变量详解2.2shell系统变量介绍2.3shell环境变量介绍2.4shell用户环境变量介绍2.4.1自定义shell环境变量 三、shell编程流程控制语句3.1if条件语句介绍3.1…

TikTok出现“无网络连接”,具体原因与解决方法

“No network connection”!当你信心满满下载并准备开始运营TikTok时,屏幕上如果提示“无互联网连接”非常难办。有很多因素可能会导致此问题,包括网络连接无效、应用程序故障等。接下来将为你盘点主要的原因与解决方法。 一、无网络连接的原…

C语言进阶(9)

程序的执行时有两种环境,一种是翻译环境,另一种是执行环境。程序先经过编译成为obj的后缀的文件,然后将文件和链接库链接起来,然后将形成可执行程序,前者时翻译环境,后者时执行环境。(链接库就是库函数的所…

【ComfyUI】Error occurred when executing WD14Tagger|pysssss :

解决ComfyUI的ComfyUI-WD14-Tagger插件运行报错问题 参考ONNX 运行时的 CUDA 和 cuDNN 加载错误 期刊 #56 pythongosssss/ComfyUI-WD14-标记器 (github.com) 我尝试了以下操作 转到 启动器, 启动CMD, 按回车键: 粘贴。卸载两个包 pip unin…

Linux之进程间通信(下)

目录 命名管道 命名管道的创建 匿名管道和命名管道的区别 命名管道的代码实现 共享内存 创建共享内存 关联共享内存 去关联共享内存 删除共享内存 共享内存特点 共享内存代码实现 IPC资源总结 命名管道 上期我们学习了匿名管道,匿名管道本质就是一个…

EcoVadis评估对可持续发展具体表现在哪些方面

Ecovadis认证是一项备受推崇的环保和社会责任认证,其优势不仅在于其权威性和公信力,更在于其全面而深入的评估标准,这个认证体系将企业划分为不同的等级,从入门级的银牌到最高级别的白金级,每个等级都有相应的评估标准…

Selenium + Python 自动化测试14(发送报告)

我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。 上一篇我们讨论了使用HTMLTestRunner 生成HTML报告的方法。 本篇文章我们接着讲生成HTML报告是否可以自动邮件发送出去,提高我们测试报告的及时性,方便…

PCB入门笔记—绘制一个只有两个排针的PCB全流程记录—立创EDA专业版

PCB绘制入门🚀 硕士毕业之后准备进入博士阶段,本科阶段做的硬件,硕士阶段做的算法,然后博士阶段又要做回硬件了,因此也是打算补一补PCB相关的内容和知识,毕竟做控制的话,之后这也是不能躲开的必…

前端工程化-02.Yapi接口管理平台

YApi Pro-高效、易用、功能强大的可视化接口管理平台 图片中链接已失效,此处为新链接 选择添加接口,输入接口名称和接口路径。 创建成功后自动进入接口页面,点击编辑,可以编辑完善这个接口的信息。两个非常重要的信息&#xff1a…

进程waitwaitpid、线程

一、wait wait功能 1、获取子进程退出状态,分析子进程是否已经退出(变成僵尸态) 2、回收资源,让僵尸态子进程销毁 wait本身是一个阻塞操作,会使调用者阻塞 2、宏: (1)WIFEXITE…

bug的常见排查和分析思路以及相关的原因分类

作为开发人员,经常会收到来自用户和QA,领导反馈的各种问题。 为了快速问题,我们有时需要站在更高的角度,更全面的看待问题。才能更快锁定问题。 具体的bug还需要结合企业实际业务情况,相关的框架,依赖库&…

海康摄像头(测温型)桌面客户端开发分享

分享一个自己开发的用于企业特殊场景下温度监控告警的一个桌面应用。 关键功能: 1.支持海康摄像头; 2.支持多路视频预览,多通道画面选择预览,支持视频画面回放与下载; 3.支持自动探测摄像头功能,若具备…

RabbitMQ集群部署

RabbitMQ集群部署 简介 消息中间件RabbitMQ,一般以集群方式部署, 主要提供消息的接受和发送,实现各微服务之间的消息异步。 以下将介绍RabbitMQHA方式进行部署。 原理介绍 cookie ​ RabbitMQ底层是通过Erlang架构来实现的,所…

基于java五台山景点购票系统(源码+论文+部署讲解等)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优…

自建Gitlab和Gitlab runner并推送镜像到Harbor

1. 创建虚拟机 整体规划如下 1.1 创建3台虚拟机 系统版本Centos7.9 设置IP分别为 192.168.200.201 、192.168.200.202、 192.168.200.203 1.2 安装docker 3台虚拟机都安装docker,参考文章 安装docker 1.3 修改daemon.json 修改 /etc/docker/daemon.json 文件…

【数字信号处理】第3章 离散时间信号和系统的频域分析,系列的离散时间傅里叶变换,性质,定理(清华大学)

目录 第3章 离散时间信号和系统的 引言 信号和系统的分析方法有两种 模拟信号与系统的时域分析 模拟信号与系统的频域分析 离散时间信号和系统 历史回顾 3.1.1 序列的离散时间傅里叶变换 3.1.2 序列的离散时间傅里叶变换的性质 1. DTFT的周期性 2. 线性 3. 时移(位移…

守护网站心脏:HAProxy负载均衡技术详解(全网最详细)

守护网站心脏:HAProxy负载均衡技术详解 文章目录 **守护网站心脏:HAProxy负载均衡技术详解**haproxy介绍特点功能配置结论 haproxy负载均衡测试haproxy主机操作日志重定向操作 webserver1主机操作webserver2主机操作 haporxy相关配置测试backup参数测速h…