从零开始学习网络安全渗透测试之基础入门篇——(二)Web架构前后端分离站Docker容器站OSS存储负载均衡CDN加速反向代理WAF防护

Web架构

Web架构是指构建和管理Web应用程序的方法和模式。随着技术的发展,Web架构也在不断演进。当前,最常用的Web架构包括以下几种:

  1. 单页面应用(SPA)
    • 特点:所有用户界面逻辑和数据处理都包含在一个HTML页面中,通过JavaScript动态加载内容。
    • 优势:良好的用户体验,快速的内容加载,可缓存静态文件。
    • 劣势:初始加载时间较长,对网络条件要求较高,搜索引擎优化(SEO)挑战。
  2. 前后端分离
    • 特点:将Web应用程序的前端(用户界面)和后端(服务器逻辑)分离,通常通过API进行通信。
    • 优势:前后端开发可以并行进行,提高开发效率;易于维护和扩展。
    • 劣势:增加了API设计和维护的复杂性。
  3. 微服务架构
    • 特点:将大型应用程序分解成多个小型、独立的服务,每个服务运行在自己的进程中,通过API进行通信。
    • 优势:可独立部署,易于扩展,能够使用不同的技术栈。
    • 劣势:增加了系统复杂性,需要更多的协调和管理。
  4. 服务器端渲染(SSR)
    • 特点:服务器端执行Web应用程序的逻辑和渲染,然后将完整的HTML页面发送给客户端。
    • 优势:良好的SEO性能,快速的页面加载,尤其是在首屏内容加载时。
    • 劣势:服务器负载较大,需要额外的服务器资源。
  5. 全栈开发
    • 特点:开发者负责整个Web应用程序的端到端开发,包括前端和后端。
    • 优势:开发效率高,对整个系统的理解更深入。
    • 劣势:需要开发者具备全面的技术栈知识。
  6. 无服务器架构(Serverless):
    • 特点:应用程序不需要管理服务器或操作系统,所有计算和存储需求都由云服务提供商管理。
    • 优势:易于扩展,无需担心服务器管理,成本效益高。
    • 劣势:对开发者而言,可能需要适应新的开发模式和思维方式。
      这些架构各有优势和劣势,适用于不同的项目需求和场景。选择哪种架构取决于项目的具体要求、团队的技能、以及期望的性能和成本。随着技术的进步,新的Web架构模式也在不断出现和被采纳。

一、前后端分离站

前后端分离是Web开发中的一种常见模式,它将Web应用程序分为两个独立的层:前端(用户界面)和后端(服务器逻辑)。这种分离模式允许前端和后端开发可以并行进行,提高了开发效率和维护性。以下是前后端分离应用的详细介绍:

前端开发

  1. 技术栈
    • HTML:用于构建网页的结构。
    • CSS:用于网页的布局和样式。
    • JavaScript:用于实现网页的交互和动态效果。
    • 框架和库:如React、Vue.js、Angular等,用于简化开发过程。
  2. 工作流程
    • 前端开发人员负责创建和维护HTML页面、CSS样式和JavaScript脚本。
    • 他们通常使用版本控制工具(如Git)来管理代码,并与后端开发人员协作。

后端开发

  1. 技术栈
    • 服务器端语言:如Node.js、Python(Django、Flask)、Java(Spring)、Ruby(Ruby on Rails)等。
    • 数据库:如MySQL、PostgreSQL、MongoDB等。
    • 框架和库:如Express.js、Django、Flask、Spring Boot等。
  2. 工作流程
    • 后端开发人员负责实现服务器逻辑、数据库交互和API设计。
    • 他们使用版本控制工具来管理代码,并与前端开发人员协作。
      在这里插入图片描述

通信方式

前后端分离应用通常通过API(Application Programming Interface)进行通信。前端向后端发送HTTP请求,后端处理请求并返回数据或响应。这种通信可以是同步的(如GET和POST请求),也可以是异步的(如WebSocket)。

优点

  • 开发效率:前端和后端开发可以并行进行,提高开发速度。
  • 维护性:由于前端和后端分离,它们可以独立部署和维护。
  • 可扩展性:前后端可以独立扩展,例如,可以增加更多的前端页面或后端服务。
  • 技术栈选择:前后端可以使用不同的技术栈,根据各自的需求和优势来选择。

缺点

  • API设计:需要设计良好的API,以保证前后端之间的通信顺畅。
  • 团队协作:需要前后端开发人员良好的沟通和协作,以确保整体项目的顺利进行。

实际应用

前后端分离模式广泛应用于各种Web应用,如电子商务网站、社交网络、在线办公工具等。它允许开发者根据项目的需求选择合适的技术栈,并且可以更容易地扩展和维护。

二、Docker容器站

微服务架构是一种将应用程序作为一组小型服务的方式进行构建,每个服务运行在自己的进程中,并且通过轻量级的通信机制(通常是HTTP RESTful API)进行协调和集成。每个服务都是围绕业务功能构建的,并且可以独立部署。容器化是实现微服务架构的一种流行方式,因为它提供了环境一致性、可移植性和易于部署等优点。
在这里插入图片描述

微服务架构的特点

  1. 服务自治:每个微服务都负责一个特定的功能,可以独立开发、测试、部署和扩展。
  2. 语言和框架独立:微服务可以使用不同的编程语言和框架,只要它们可以相互通信。
  3. 轻量级通信:微服务之间通过API进行通信,通常使用HTTP/REST或消息队列。
  4. 服务发现:每个服务都需要知道如何找到其他服务,服务发现机制可以帮助它们找到其他服务的地址。
  5. 容错和负载均衡:微服务架构需要考虑如何处理服务的失败和负载,因此需要实现容错和负载均衡机制。

容器化

容器化是将应用程序及其依赖打包在一起,形成一个可移植的容器镜像,可以在任何支持该镜像的环境中运行。容器化技术,如Docker,允许开发人员创建一个容器镜像,其中包含了应用程序、依赖、运行时环境等,确保应用程序在任何地方都能以相同的方式运行。

微服务容器网站的特点

  1. 可扩展性:通过容器化,可以轻松地水平扩展服务,以应对增加的负载。
  2. 环境一致性:容器化确保了开发、测试和生产环境的一致性,减少了环境差异带来的问题。
  3. 快速部署:容器镜像可以快速部署到生产环境中,并且可以自动化部署流程。
  4. 服务自治:每个微服务都是独立的,可以独立部署和扩展,不需要重新部署整个应用程序。
  5. 容错和负载均衡:容器化平台(如Kubernetes)提供了容错和负载均衡机制,确保服务的可用性和性能。

实际应用

微服务容器网站通常用于大型、复杂和需要快速迭代的项目。它们允许开发团队独立工作,同时保持整个系统的协调和一致性。这种架构模式非常适合需要频繁更新和扩展的Web应用程序,如电子商务网站、社交网络和在线协作工具。

三、OSS存储

网站对象存储服务(Object Storage Service,简称OSS)是一种提供海量、安全、低成本、高可靠的对象存储服务,适用于存放大规模非结构化数据。网站OSS存储通常用于存储静态资源文件,如图片、视频、音频等,以及备份数据、归档数据和日志数据等。
在这里插入图片描述

阿里云、腾讯云、华为云等国内主流云服务提供商都提供了自己的OSS存储服务。以下是一些常见的OSS存储服务特点:

  1. 海量存储:OSS提供PB级别的存储空间,可以满足大规模数据存储的需求。
  2. 高可靠性:OSS采用冗余存储,数据会自动备份到不同的存储设备,确保数据的安全性和可靠性。
  3. 高性能:OSS提供高吞吐量的读写能力,可以满足高性能数据访问的需求。
  4. 安全性:OSS支持多种安全特性,如访问控制列表(ACL)、数据加密、防盗链等,确保数据的安全性。
  5. 灵活性:OSS支持多种编程语言和开发工具,可以方便地集成到各种应用程序中。
  6. 低成本:OSS采用按量付费的模式,用户只需为实际使用的存储空间和数据流量付费,无需预付费。
    网站OSS存储的使用场景:
  7. 静态资源存储:将网站的静态资源文件(如图片、视频、音频等)存储在OSS上,可以提高网站的性能和可扩展性。
  8. 备份和归档:将重要数据和日志文件存储在OSS上,可以实现数据的长期保存和备份。
  9. 内容分发:利用OSS的高性能和全球节点,可以实现内容在全球范围内的快速分发。
  10. 日志分析:将网站日志数据存储在OSS上,可以方便地进行日志分析和数据挖掘。
  11. 开发和测试:开发和测试团队可以将开发环境中的数据和文件存储在OSS上,实现环境的一致性和共享。

四、负载均衡

网站负载均衡是一种网络技术,用于在多个服务器之间分配网络流量,以提高系统的可用性、可靠性和性能。当网站或应用程序的访问量增加时,负载均衡器可以帮助分散流量,确保每个服务器都能有效地处理请求,从而避免单一服务器过载。
在这里插入图片描述

负载均衡器的作用:

  1. 提高可用性:如果一个服务器出现故障,负载均衡器可以将流量转移到其他健康的服务器上,确保服务不中断。
  2. 增加可靠性:通过在多个服务器之间分配流量,即使某些服务器出现问题,也不会影响整个系统的运行。
  3. 提高性能:负载均衡器可以根据服务器的当前负载情况,智能地将请求分配到最合适的服务器,从而提高响应速度和吞吐量。
  4. 可扩展性:随着访问量的增加,可以轻松地添加更多服务器到负载均衡器中,以满足不断增长的需求。

负载均衡器的类型:

  1. 硬件负载均衡器:使用专门的硬件设备来处理流量分发。这些设备通常具有高性能和高级功能。
  2. 软件负载均衡器:运行在服务器或虚拟机上的软件,可以实现与硬件负载均衡器类似的功能。
  3. 云服务负载均衡器:云服务提供商(如阿里云、腾讯云、AWS等)提供的负载均衡服务,通常易于设置和管理。

负载均衡器的实现方式:

  1. 轮询(Round Robin):按照预设的顺序,将请求依次发送到每个服务器。
  2. 最少连接(Least Connections):将请求发送到当前连接数最少的服务器。
  3. IP哈希(IP Hash):根据客户端的IP地址来决定将请求发送到哪个服务器。
  4. 基于服务器性能的负载均衡:根据服务器的性能指标(如CPU使用率、内存使用率等)来决定请求的分配。
  5. 地理位置(GeoIP):根据客户端的地理位置,将请求发送到离客户端最近的服务器。

负载均衡器的配置:

  1. 创建负载均衡器:在云服务提供商的管理控制台中创建负载均衡器实例。
  2. 添加后端服务器:将需要负载均衡的服务器添加到负载均衡器中。
  3. 设置监听器:配置监听器的规则,如端口、协议、路径等。
  4. 配置健康检查:设置健康检查规则,以监控后端服务器的健康状况。
  5. 启用会话保持:如果需要保持用户的会话状态,可以启用会话保持功能。
  6. 配置安全策略:设置SSL/TLS加密、访问控制等安全策略。
    通过合理配置负载均衡器,可以确保网站或应用程序在各种流量条件下都能提供稳定的服务。随着技术的发展,负载均衡器的功能和性能也在不断优化和提升。

五、CDN加速

CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,用于加速网站内容的分发和访问。CDN通过在全球各地部署服务器节点,将网站的内容缓存到离用户最近的节点上,从而缩短用户访问网站内容的距离,减少数据传输时间,提高网站的加载速度和用户体验。
在这里插入图片描述

CDN的工作原理:

  1. 用户请求:用户通过浏览器访问网站时,会发送一个请求到网站的域名。
  2. DNS解析:用户的DNS服务器会将域名解析为对应的IP地址,通常是网站的CDN节点地址。
  3. 请求分发:用户的请求首先到达CDN节点,CDN节点会检查请求的资源是否已在本地缓存。
  4. 缓存命中:如果请求的资源已在CDN节点缓存,CDN节点直接响应用户请求,返回缓存内容。
  5. 缓存未命中:如果请求的资源未在CDN节点缓存,CDN节点会向源站(网站服务器)发送请求,获取资源。
  6. 缓存内容:CDN节点获取资源后,将其缓存起来,以便后续的请求可以直接从CDN节点获取。
  7. 返回内容:CDN节点将获取到的资源返回给用户,完成请求处理。

CDN的优势:

  1. 加速访问:通过在用户附近的CDN节点提供内容,减少数据传输距离,提高访问速度。
  2. 提高可靠性:CDN具有高可用性和高可靠性,即使源站出现故障,CDN节点也能提供内容。
  3. 节省带宽:CDN缓存的内容可以直接从CDN节点返回,减少源站的带宽消耗。
  4. 降低成本:通过使用CDN,可以减少源站的硬件和带宽成本。
  5. 全球覆盖:CDN在全球部署节点,可以覆盖更多用户,提供更好的全球访问体验。

CDN的实现方式:

  1. 自建CDN:企业可以自己搭建CDN网络,管理自己的节点和服务。
  2. 使用第三方CDN服务:企业可以选择使用阿里云CDN、腾讯云CDN、AWS CloudFront等第三方CDN服务。

CDN的配置:

  1. 选择CDN服务提供商:根据企业需求和预算选择合适的CDN服务提供商。
  2. 注册账号并创建CDN实例:在CDN服务提供商的管理控制台中注册账号,并创建CDN实例。
  3. 配置源站:将网站的域名和源站地址关联到CDN实例。
  4. 设置缓存策略:配置CDN节点的缓存策略,包括缓存时间、缓存规则等。
  5. 配置DNS解析:将网站的域名解析到CDN节点的IP地址。
    通过配置CDN,可以显著提高网站的访问速度和用户体验,是现代网站建设中不可或缺的一部分。随着技术的发展,CDN的功能和性能也在不断优化和提升。

六、反向代理

HTTP反向代理是一种网络服务,它接收客户端的请求,然后将这些请求转发到内部网络上的服务器,并将从服务器接收到的响应转发回客户端。反向代理隐藏了内部网络的细节,使得客户端无法直接访问内部网络的服务器。
在这里插入图片描述

反向代理的作用:

  1. 安全:反向代理可以阻止外部用户直接访问内部服务器,从而提高安全性。
  2. 性能:通过缓存静态内容,反向代理可以减少内部服务器的负载,提高响应速度。
  3. 负载均衡:反向代理可以自动将请求分配到多个服务器上,实现负载均衡。
  4. 控制访问:反向代理可以控制对内部服务器的访问,例如,通过IP地址过滤、SSL终止等。
  5. 内容分发:反向代理可以将内容分发到全球各地,提高全球用户的访问速度。

常见的反向代理软件:

  1. Nginx:一个开源的HTTP和反向代理服务器,广泛用于负载均衡和反向代理。
  2. Apache HTTP Server:一个流行的开源HTTP服务器,也支持反向代理功能。
  3. HAProxy:一个高性能的负载均衡器,可以作为反向代理使用。
  4. IIS:微软提供的Web服务器,支持反向代理功能。

反向代理的配置:

  1. 创建代理规则:在反向代理软件的配置文件中创建代理规则,指定请求转发到内部服务器的路径。
  2. 设置缓存策略:配置反向代理的缓存策略,包括缓存时间、缓存内容等。
  3. 配置负载均衡:如果需要实现负载均衡,可以配置反向代理的负载均衡策略,如轮询、最少连接等。
  4. 安全设置:设置反向代理的安全策略,例如,通过SSL终止来保护通信安全。
  5. 测试和调整:在生产环境中部署反向代理之前,进行充分的测试和调整,以确保其正常工作。
    通过配置反向代理,可以提高内部服务器的性能和安全性,并改善用户体验。随着技术的发展,反向代理的功能和性能也在不断优化和提升。

七、WAF防护

WAF(Web Application Firewall,Web应用防火墙)是一种网络安全系统,旨在保护Web应用程序免受攻击,如SQL注入、跨站脚本(XSS)、远程文件包含(RFI)、本地文件包含(LFI)、会话劫持、CSRF(跨站请求伪造)等。它工作在Web服务器的前端,监视、分析和过滤传入和传出的Web通信。
在这里插入图片描述

比如安全狗的Web应用安全产品包括新一代混合式WAF产品和防篡改系统,旨在为网站安全提供全面保障。在安全大数据领域,安全狗基于海量攻防数据,结合AI学习能力,构建多领域、多维度的安全态势感知平台,帮助用户有效预测风险、精准感知威胁、提升响应效率。此外,安全狗还提供包括等保2.0、渗透测试、红蓝对抗等全方位的高级安全服务。

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

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

相关文章

劝你不要上自动化立体库,非要上,砸锅了吧

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 在当今这个科技日新月异的时代,自动化立体库作为仓储物流领域的佼佼者,以其高效、精准、节省人力的优势,吸引…

Windows下帆软BI(finebi)单机部署移植(Tomcat)攻略

一、基础环境 操作系统:Windows 10 64bit 帆软BI 版本:V9.0/V10.0 HTTP工具:Tomcat 外置数据库:Oracle 11g 实验内容:将已经部署好的帆软BI从一台电脑移植到另一台电脑 二、前期准备 1、做好外置数据库移植&…

【Three.js基础学习】17.imported-models

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 课程回顾: 如何在three.js 中引入不同的模型? 1. 格式 (不同的格式) https://en.wikipedia.org/wiki/List_of_file_form…

杭州东网约车管理再出行方面取得的显著成效

随着科技的飞速发展,网约车已成为人们日常出行的重要选择。在杭州这座美丽的城市,网约车服务更是如雨后春笋般蓬勃发展。特别是杭州东站,作为杭州的重要交通枢纽,网约车管理显得尤为重要。近日,沧穹科技郑重宣告已助力…

达梦数据库系列—33.日志总结

目录 1、SQL日志 SQL 日志开启 SQL日志分析 2、Redo日志 3、归档日志 联机配置归档 手动配置归档 归档信息的查看 清理归档日志 4、闪回 查看闪回功能状态 开启闪回 闪回查询 5、其他事件日志 数据库实例日志 DMAP进程日志 数据库备份日志 dmwatcher日志 dm…

【STM32本科毕业设计】基于STM32的多功能MP3播放器设计

目录 一. 概述二. 系统硬件设计2.1 整体设计思路2.2 硬件器件的选择2.2.1 MP3解码芯片选择 2.2.2 收音机芯片选择2.2.3 温度传感器选择2.2.4 彩灯驱动芯片选择2.2.5 音效处理芯片选择2.2.6 EEPROM芯片选择2.2.7 功率放大芯片选择2.2.8 电源芯片选择2.2.9 人机交互设备选择 2.3 …

Django学习第一天(如何创建和运行app)

前置知识: URL组成部分详解: 一个url由以下几部分组成: scheme://host:port/path/?query-stringxxx#anchor scheme:代表的是访问的协议,一般为http或者ftp等 host:主机名,域名,…

Spring Security学习笔记(二)Spring Security认证和鉴权

前言:本系列博客基于Spring Boot 2.6.x依赖的Spring Security5.6.x版本 上一篇博客介绍了Spring Security的整体架构,本篇博客要讲的是Spring Security的认证和鉴权两个重要的机制。 UsernamePasswordAuthenticationFilter和BasicAuthenticationFilter是…

【JVM基础05】——组成-能不能解释一下方法区?

目录 1- 引言:方法区概述1-1 方法区是什么?(What)1-2 为什么用方法区?方法区的作用 (Why) 2- ⭐核心:详解方法区(How)2-1 能不能解释一下方法区?2-2 元空间内存溢出问题2-3 什么是常量池?2-4 运行时常量池 …

SAP PP学习笔记31 - 计划运行的步骤2 - Scheduling(日程计算),BOM Explosion(BOM展开)

上一章讲了计划运行的5大步骤中的前两步,计算净需求和计算批量大小。 SAP PP学习笔记30 - 计划运行的步骤1 - Net requirements calculation 计算净需求(主要讲了安全库存要素),Lot-size calculation 计算批量大小-CSDN博客 本章继续讲计划运行的后面几…

360:从安全卫士到智能生活——一个科技巨头的成长之路

自2005年成立以来,360公司,全称北京奇虎科技有限公司,已经成为中国乃至全球科技领域的一股不可忽视的力量。从最初的互联网安全服务提供商,到如今涉足智能硬件、云计算、大数据、人工智能等领域的多元化科技公司,360的…

**卷积神经网络典型CNN**

LeNet:最早用于数字识别的CNN AlexNet:2012年ILSVRC比赛冠军,远超第二名的CNN,比LeNet更深,用多层小卷积叠加来替换单个的大卷积 ZF Net:2013ILSVRC冠军 GoogleNet:2014ILSVRC冠军 VGGNet&a…

Unity UGUI 之 自动布局组件

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本,请注意分别 1.什么是自动布局组件…

【Node.js入门精要】从零开始的开发之旅

说明文档:Node.js 教程_w3cschool 概念 Node.js 是一个开源、跨平台的 JavaScript 运行时环境,基于 Chrome 的 V8 引擎构建,专为构建高性能和可扩展的网络应用程序而设计的服务端语言。它采用事件驱动、非阻塞 I/O 模型,能够处理大…

GB28181摄像头管理平台WVP视频平台SQL注入漏洞复现 [附POC]

文章目录 GB28181摄像头管理平台WVP视频平台SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 GB28181摄像头管理平台WVP视频平台SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内…

Unity UGUI 之 Mask

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本,请注意分别 1.什么是遮罩 遮罩是一…

运算符 、、|、|| 、短路符【|| 、】<< 、>>

》》》&&是逻辑与运算符,|| 是逻辑或运算符 !是逻辑非运算符 逻辑与运算符:全为真(1)即结果为真(1),一个为假即全为假(0) 逻辑或运算符:…

shell循环语句

一, 循环语句 1.for循环语句 读取不同的变量值,用来逐个执行同一组命令 格式 for 变量名 in 取值列表 do 命令序列 done 1.1 列表循环 [rootlocalhost /home]# vim demo32.sh #!/bin/bash for i in {a..c} doecho $i done ~ [rootlocalhost /ho…

数据结构·AVL树

1. AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果存数据时接近有序,二叉搜索将退化为单支树,此时查找元素效率相当于在顺序表中查找,效率低下。因此两位俄罗斯数学家 G.M.Adelson-Velskii 和E.M.Landis 在1962年发明了一种解…

Pytorch深度学习实践(5)逻辑回归

逻辑回归 逻辑回归主要是解决分类问题 回归任务:结果是一个连续的实数分类任务:结果是一个离散的值 分类任务不能直接使用回归去预测,比如在手写识别中(识别手写 0 − − 9 0 -- 9 0−−9),因为各个类别…