news 2026/2/3 15:55:40

Web安全基础教程(非常详细)从零基础入门到精通,看完这一篇就够了_web安全0基础入门系列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Web安全基础教程(非常详细)从零基础入门到精通,看完这一篇就够了_web安全0基础入门系列
Web简介:

Web 即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。

万维网常被当成因特网的同义词,但万维网与因特网有着本质的差别。因特网(internet)指的是一个硬件的网络,全球的所有电脑通过网络连接后便形成了因特网。而万维网更倾向于一种浏览网页的功能。

互联网包含因特网,因特网包含万维网,即:互联网 > 因特网 > 万维网。

01静态页面和动态页面

静态页面:在静态html页面中,用户通过web浏览器HTTP协议向web服务器发送一个响应请求,告诉web服务器要浏览这个网站的哪个页面,接着根据用户的响应请求返回一个html页面给用户,经过浏览器渲染解析呈现在用户眼前。

静态web页面是没有数据库文件的,所以不能连接网络数据库;

静态web页面主要是通过html代码开发设计的;

部分静态web页面为了页面的好看,使用了大量的JS代码,导致静态web页面打开速度慢。

动态页面:在动态web页面中,依然要通过web服务器的html协议或https协议响应才能返回结果给用户,用户所有请求都必须要通过web服务器处理才能实现。

用户的响应请求是一个静态的html页面,只需要响应请求web服务器从系统中调出用户响应的内容,将内容返回给客户端浏览器进行处理,再返回给用户。

如果用户响应请求的是动态页面资源,例如.jsp/.asp/.aspx、/.php等,响应步骤是先将用户请求发送给web服务器,web服务器再从数据库调出有用户请求的数据,调出数据后将所需要展示给用户的内容发送给服务器,最后通过web服务器将需要展示给用户的内容返回给用户浏览器解析执行,展示给用户。

Web 1.0和web 2.0的本质区别

两者的本质区别在于:web1.0主要在于用户通过浏览器获取信息;Web2.0则更注重用户的交互作用。

URL

统一资源定位符,俗称网页地址或简称网址,是因特网上标准的资源地址,如同在网络上的门牌。已经被万维网联盟编制为因特网标准RFC 1738

URL组成:协议+主机+端口+路径+参数

常见端口:HTTP:80 HTTPS:443 MySQL:3306

HTML基础

超文本标记语言 – html

HTML元素(标签)

这是一个段落。

HTML标签简介

声明为HTML5文档 元素是HTML页面的根元素 元素包含了文档的元(meta)数据,如定义网页编码格式为utf-8 元素描述了文档的标题 元素包含了可见的页面内容

元素定义了一个大标题

元素定义一个段落

注:在浏览器的页面上使用键盘上的F12按键开启调试模式,就可以看到组成标签。

HTML-段落

HTML段落是通过标签

来定义的,

这是一个段落

<这是另一个段落>

HTML-链接

HTML链接是通过标签来定义的

标签的href属性用于指定超链接目标的URL。在href属性中指定链接的地址。

HTML-图像

HTML图像是通过标签来定义的

HTML-水平线

标签在HTML页面中创建水平线;Hr元素可用于分割内容。

HTML-注释

可以将注释插入HTML代码中,这样可以提高其可读性,使代码更容易被人理解

HTML-换行

如果我们希望在不产生一个新段落的情况下进行换行(新行),请使用
标签;

这个
段落
演示了分行的效果

HTTP

什么是HTTP?

超文本传输协议(HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。当时选择使用HTTP协议,是因为它使开发和部署非常地直截了当。

如何访问web应用?

  1. 在浏览器地址栏键入URL访问
  2. 浏览器向DNS(域名解析)服务器请求解析该URL中的域名所对应的IP地址。
  3. 解析出IP地址后,根据该IP地址和默认80端口跟服务器建立TCP连接
  4. 浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器
  5. 服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器
  6. 浏览器将该html文本进行解析并显示内容。
HTTP协议的内部操作过程

HTTP定义的事务处理由以下四步组成:

①客户端与服务器建立连接

②客户端向服务器端发送请求

③服务器端向客户端回复响应

④断开

HTTP/1.0和HTTP/1.1协议的区别

HTTP1.1版本发布比HTTP/1.0晚了半年,这个版本最大的变化就是持久化连接加入了HTTP标准,即TCP连接默认不关闭,可以被多个请求复用。此外,HTTP/1.1版还新增了很多方法,例如:PUT、CONNECT、HEAD、OPTIONS、DELETE。得到进一步完善的HTTP/1.1版本,一直沿用至今。

HTTP-请求方法

方法(操作)

含义

GET

请求获取Request-URL(请求地址)所标识的资源。(请求读取由URL所标志的信息)

POST

在Request-URL所标识的资源后附加新的数据。(给服务器添加信息,例如注释)

HEAD

请求获取由Request-URL所标识的资源的响应消息报头。

PUT

请求服务器存储一个资源,并用Request-URL作为其标识。

DELETE

请求服务器删除Request-URL所标识的资源。

TRACE

请求服务器回送收到的请求信息,主要用于测试或诊断。

CONNECT

用于代理服务器。

OPTIONS

请求查询服务器的性能,或者查询与资源相关(特定)的选项和需求。

GET和POST的区别

原理区别

URL全称是资源描述符,一个URL地址用于描述一个网络上的资源,HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。

GET一般用于获取/查询资源信息;POST一般用于更新资源信息。

GET用于信息获取时应该是安全的,幂等的。

安全:该操作用于获取信息而非修改信息,它仅仅是获取资源信息,就像数据库查询一样,不会修改/增加数据,不会影响资源的状态。

幂等:对同一URL的多个请求应该返回同样的结果。

POST表示可能修改服务器上的资源的请求。

HTTP协议的主要特点

1.支持客户/服务器模式:一个服务器可以为分布在世界各地的许多客户服务。

2.简单快捷:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET和POST。

由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

请求首部

描述

Accept

指定客户端接受信息的类型(MIME类型)

Connection

允许C/S指定与请求/响应连接的有关选项

Host

请求的服务器的主机名和端口号

Referer

包含一个URL,用户从该URL代表的页面出发访问当前请求的页面

Use-Agent

发起请求的应用程序名称

Accept-Encoding

告诉服务器能够接受哪些内容编码方式

Content-Length

表示请求消息正文的长度

Cookie

客户端提供给服务器的认证数据

HTTP请求头 - Cookie

HTTP Cookie:

Cookie通常也叫做网站Cookie,浏览器Cookie或者httpCookie,是保存在用户浏览器端的,并在发出http请求时会,默认携带的一段文本片段。它可以用来做用户认证,服务器校验等通过文本数据可以处理的问题。

HTTP请求头 - Referer

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

500

服务器内部错误

服务器遇到错误,无法完成请求。

501

尚未实施

服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

502

错误网关

服务器作为网关或代理,从上游服务器收到无效响应。

503

服务不可用

服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504

网关超时

服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505

HTTP 版本不受支持

服务器不支持请求中所用的 HTTP 协议版本。

HTTP的缺陷

由于HTTP协议的简单特性,且不保存客户端的状态,不进行验证客户端是否是真实存在,传输使用的是明文传输,故也很具有缺点。

①通信双方使用明文传输(不加密),内容可能会被窃听。

②不验证通信方的身份,因此可能遭遇伪装。

③无法证明报文的完整性,所以有可能已遭篡改。

在这几个缺点的基础上为了防止这些问题的发生,出现了HTTPS

HTTPS协议基础
  1. 什么是HTTPS

HTTPS是在HTTP上简历SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。

  1. HTTPS主要作用:

①对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;

②对网站服务器进行真实身份认证。

默认HTTP的端口号为80,HTTPS的端口号为443。

HTTP和HTTPS两者的区别

本质:明文和加密

信任主机的问题:采用https的server必须从CA申请一个用于证明服务器用途类型的证书,改证书只有用于对应的server的时候,客户端才信任该主机。

为什么需要加密:①防止中间人攻击 ②防钓鱼

BURP(代理服务器)—**“**中间商”

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。


1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群

一、基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

二、能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 14:22:50

如何快速掌握SeaJS:前端模块化的终极指南

如何快速掌握SeaJS&#xff1a;前端模块化的终极指南 【免费下载链接】seajs A Module Loader for the Web 项目地址: https://gitcode.com/gh_mirrors/se/seajs SeaJS作为一款专注于Web端的JavaScript模块加载器&#xff0c;为前端开发提供了简单高效的模块化解决方案。…

作者头像 李华
网站建设 2026/2/3 14:57:06

C++并发编程错误处理深度剖析:如何构建坚如磐石的异常安全系统?

在当今多核架构主导的计算环境中&#xff0c;C并发编程已成为高性能应用开发的核心技能。然而&#xff0c;多线程环境下的错误处理远比单线程复杂&#xff0c;异常安全与资源管理成为开发者必须跨越的技术鸿沟。本文将带您深入探索C并发编程中的异常处理机制&#xff0c;从基础…

作者头像 李华
网站建设 2026/2/2 19:27:37

ARM 工程初始化中 error: c9511e 的快速理解

深入理解 ARM 工程初始化中的error: c9511e&#xff1a;从报错到掌控构建系统你有没有在启动一个嵌入式项目时&#xff0c;刚敲下make clean all就被一条红色错误拦住去路&#xff1f;error: c9511e: unable to determine the current toolkit. check that arm_tool_path is se…

作者头像 李华
网站建设 2026/1/30 16:45:38

JMeter Prometheus插件完整使用指南:从入门到精通的终极教程

JMeter Prometheus插件完整使用指南&#xff1a;从入门到精通的终极教程 【免费下载链接】jmeter-prometheus-plugin A Prometheus Listener for Apache JMeter that exposes results in an http API 项目地址: https://gitcode.com/gh_mirrors/jm/jmeter-prometheus-plugin …

作者头像 李华
网站建设 2026/2/2 16:30:54

GitHub Releases发布预训练TensorFlow模型权重

GitHub Releases发布预训练TensorFlow模型权重 在深度学习项目中&#xff0c;你是否经历过这样的场景&#xff1a;刚接手一个同事的代码&#xff0c;满怀信心地运行 pip install tensorflow 后却发现版本不兼容&#xff1b;或者为了复现一篇论文的结果&#xff0c;反复尝试下载…

作者头像 李华