Web安全之web基础

目 录 (本文是学习极客时间——《Web 安全攻防实战》的笔记小结)
1、前端开发
1.1 HTML
1.2 CSS
1.3 JavaScript
2 WebApp
2.1  从浏览器输入网址到看到网页过程
2.2 常见的 Web 服务器
2.3 框架
3 Web安全总览
3.1 协议基础
3.2 Web安全攻防要点

1、前端开发

前端开发是创建Web页面或App等前端界面呈现给用户的过程。前端使用的语言有HTML,CSS,JavaScript.

1.1 HTML

是什么?

  • HTML( HyperText Markup Language)即超文本标记语言,是用来构建网页的一种语言。
  • HTML是一整套标记标签构成的标记语言,而非编程语言。
  • HTML用于承载网页的内容(文本、图片、语音、视频)。
  • 使用HTML标记标签与纯文本按规则构建的文档,通常也称为网页。
    网页结构
    图片
    HTML标签/元素/属性
    图片

1.2 CSS

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算
机语言。
 CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

1.3 JavaScript

JavaScript是什么?
JavaScript,是可插入 HTML 页面,可以由绝大多数现代浏览器执行的轻量级的编程语言。
JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
它和Web安全有什么关系?
作为一种脚本语言,由它引申出的 XSS 攻击,文件上传漏洞,常年占据 OWASP Top10。
Node.js
简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。
2 WebApp

Web App(或Web应用程序)运行于网络和标准浏览器上,基于网页技术开发实现特定功能的应用。

  • 前端:HTML,CSS,JavaScript
  • 后端:Java,Python,PHP
  • 数据库:MySQL,Oracle,MongoDB
  • 容器:Windows(IIS),Linux(Nginx, Apache)
  • 协议:TCP,DNS,HTTP,HTTPS

2.1  从浏览器输入网址到看到网页过程

  • 客户输入URL,DNS解析URL得出IP地址,根据IP地址找出对应服务器
  • 客户机通过TCP/IP协议建立到Web服务器的TCP链接
  • 客户机向Web服务器发送HTTP请求报文,请求服务器里资源的资源文档
  • Web服务器接收到客户机的HTTP请求报文,然后向客户机发出HTTP响应报文
  • 如果请求的是HTML文档,Web服务器会将对应目录下相应的HTML文档打开,然后将文档的响应内容发送给客户机。
  • 如果请求的是PHP文件,那么Web服务器自身是不能处理PHP动态语言脚本文件的,然后就会寻找并委托PHP应用服务器,PHP应用服务器会将Web服务器请求的PHP
  • 文件解析成HTML静态代码,然后将HTML静态代码发送给Web服务器,最后Web服务器会将HTML静态代码发送客户机。
  • 如果请求的资源是访问数据库,则Web服务器会通过应用服务器去访问数据库。

2.2 常见的 Web 服务器

  • Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器软件之一。
  • Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。
  • IIS是Internet Information Server的缩写。它是微软公司主推的服务器。
  • Lighttpd是一个德国人领导的开源Web服务器软件,具有非常低的内存开销、CPU占用率低、效能好以及丰富的模块等特点。
  • Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

2.3 框架

Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架。
 前端:jQuery、Bootstrap、React.js、Vue.js
后端:Spring MVC、Django、Flask、Tornado
3 Web安全总览

3.1 协议基础

HTTP协议定义了Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。
• 客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
• 发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据 4部分组成。
• 服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。
一个响应由状态行、响应头部、空行(请求空行)和响应数据(请求体)4部分组成。
• 释放连接TCP连接
若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接。
若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求。
• 客户端浏览器解析HTML内容
GET vs POST?

  • 从参数的传递方面来看,GET请求的参数是直接拼接在地址栏URL的后面,而POST请求的参数是放到请求体里面的。
  • 从长度限制方面来看,GET请求有具体的长度限制,一般不超过1024KB,而POST理论上没有,但是浏览器一般有个界限。
  • 从安全方面来看,GET请求相较于POST,因为数据都是明文显示在URL上面的,所以安全和私密性不如POST。
    从本质上来说,GET和POST都是TCP连接,并无实质的区别。但是由于HTTP/浏览器的限定,导致它们在应用过程中体现出了一些不同。GET产生一个数据包,POST产生两个数据包。对于GET请求,浏览器会把http header 和 data 一并发出去,服务器响应200(返回数据)。而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok。
    状态码
    图片

3.2 Web安全攻防要点

图片
Web安全根本在于,Web应用在实现HTTP协议的过程中,没有做足够充足强大的约束,导致攻击者能够利用其中的薄弱环节进行攻击。(前端输入不可信)
安全学习交流群:687398569

《网络安全从零到精通全套学习大礼包》

96节从入门到精通的全套视频教程免费领取

如果你也想通过学网络安全技术去帮助就业和转行,我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。

请添加图片描述

网络安全学习路线图

想要学习 网络安全,作为新手一定要先按照路线图学习方向不对,努力白费。对于从来没有接触过网络安全的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线,大家跟着这个路线图学习准没错。

请添加图片描述

配套实战项目/源码

所有视频教程所涉及的实战项目和项目源码

在这里插入图片描述

学习电子书籍

学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的

在这里插入图片描述

面试真题/经验

请添加图片描述

以上资料如何领取?

img

7ae8ac36b2a650.png)

以上资料如何领取?

img

文章来自网上,侵权请联系博主

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐