首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Web2.0架构(小迪网络安全笔记~

  • 25-01-22 05:43
  • 4695
  • 12466
blog.csdn.net

附:完整笔记目录~
ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!

1.1.1 Web2.0架构

  1. 目前大部分Web资产架构为

    1. 通过ip/域名进行资产访问
    2. 资产基本组成:操作系统 + 中间件 + 源码 + 数据库
  2. ip/域名

    1. 关系:不同域名通过DNS协议被解析为不同/相同ip,通过域名对Web进行访问,实际也是通过ip访问Web。那为什么还要对Web使用域名呢?域名更方便记忆与管理。

    2. 使用:

      一般而言企业/个人想要使用域名,则需要申请备案且支付费用。站在我自己的角度,为了避免麻烦与节约成本,往往仅会备案一个域名(称该域名为主域名)。但一个Web需要向用户提供的服务是很多的,一个主域名显然不够,为了实现更多的功能点而又不想备案/购买多余的主域,此时则需要子域名来完成。

    3. 访问方式:上述提到,我们常常通过ip/域名对Web进行访问。但由于Web结构的复杂与功能点的多样,因此会产生不同的访问方式。

      1. 通过端口号进行访问

        image-20241116224859745

      2. 通过目录进行访问

        image-20241116224933932

      3. 通过子域进行访问

        image-20241116225058151

        当然若了解url组成,也就很好理解这三种访问方式,同样这三种方式也可相互结合访问。

  3. 操作系统

    1. 满足不同需求的Web资产,可能会搭建在不同操作系统的服务器上。而使用不同操作系统所搭建的Web,其搭建/运维/渗透方式也会有些许差别。
    2. 会使用搭建Web的操作系统
      1. Liunx,Windows,Mac。
  4. 中间件

    1. 中间件常常为某软件,被搭建在服务器上,常负责处理转发来自客户端和服务器端的请求,是客户端与后台服务器的桥梁。
    2. Web2.0中常使用中间件
      1. Apache:通过php实现的Web常常会部署至Apache上
      2. Tomcat:Java web部署至Tomcat上
      3. IIS:asp,.net部署至IIS上(少见)
      4. Nginx:提供反向代理与负载均衡,实现服务端的高性能高并发。
  5. 源码

    1. 众所周知,计算机的所有功能均通过代码实现,而Web也不例外。

    2. 常用于Web开发的语言:

      1. Java、JavaScript、Go、Php、Asp等
    3. 使用语言开发Web的方式

      1. 原生开发,即所有功能均由开发者自己实现。
      2. 框架开发,开发者在已有框架上进行开发,高效、安全、快捷。
    4. 各语言常使用的开发框架

      1. Java:Springboot…

      2. Js:Vue、node…

      3. Php:Thinkphp…

      4. Python:Django…

        即使使用开发框架开发Web,一旦客户需求、Web功能点等变多,仍会使开发者有很大工作量,那有没有更简单实现Web开发的方法呢?

    5. Web源码类型

      1. 源码开源:对于开发水平较弱或对Web要求不多的用户而言,往往使用开源源码,无需额外考虑源码结构、逻辑等,仅填充内容即可。更快、更方便、成本更低,但安全性也相对较弱,一旦开源源码存在安全问题,则使用该源码的Web可能均会遭殃。

        开源源码:zblog

      2. 源码加密:相较于完全开源,源码可见,加密后的源码往往不可读,更安全,但同样也存在被破解的可能。一旦被破解则与开源无异。

        加密源码:通达OA

      3. 源码闭源:基于原生&框架,开发者自己开发,源码完全不可见,更不易产生/发现安全问题。

  6. 数据库

    1. 与Web服务伴随的常常会存在数据库服务,数据库中常常会存储用户信息、余额等。且由于数据库的存在,不同用户对同一域名访问会返回差异性的Web。这同样也是Web2.0的重要特性。

      数据被放置在数据库中以实现数据的传递,交互。

    2. 常见数据库

      1. Mysql、MongoDB、Access等。

        由于数据库往往会存放,用户/管理者的敏感信息,为了避免当Web被攻击时数据库也遭殃,因此不同开发者对数据库的部署也会有所不同。

    3. 数据库的部署方式

      1. 本地部署,即Web服务与数据库服务部署在同一服务器上,traits:源码数据库配置文件中,127.0.0.1:3306/localhost:3306,此时若拿到其Web服务器权限则其数据库权限也一并拿到。

      2. 另一服务器部署,即Web服务与数据库服务部署在内网不同服务器上,则即使拿到Web服务器权限,也不一定获取其数据库权限。

      3. 云上部署,即数据库被部署至云上,而云数据库服务会默认开启连接白名单,即使拿到云数据库配置信息也无法直接连接。

        注:数据库具体如何部署一定是看开发者是何种需求,并不是因为云/另一服务器更安全而所有开发者都要使用。

  7. 实验

    1. 实验内容:在云服务器上通过宝塔部署zblog系统,并将数据库部署至云上。

    2. 步骤

      1. 阿里云租一台Win Server服务器并通过远程桌面连接

      2. 在该服务器上安装宝塔面板,并通过该面板安装Apache,php

        image-20241117210856910

      3. 部署zblog源码于网站目录下

      4. 尝试访问

        image-20241117211115087

        zblog成功部署

      5. 在阿里云上开通云数据库服务,并部署zblog数据库

        image-20241117220428189

        ps:记得云数据库服务配置白名单

        image-20241117220008501

        zblog云数据库部署完成,试验结束。

注:本文转载自blog.csdn.net的1999er的文章"https://blog.csdn.net/qq_62040731/article/details/143867235"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top