网易云课堂Web安全工程师课程分享——第一章 Web介绍







第一节 Web介绍

课程回顾:

  1. Web是什么?
  2. Web发展分为哪几个阶段?
  3. Web安全问题发展形势?
  4. Web的工作流程?
  5. 浏览器是如何工作的?

总结回答:

  1. Web指的是World Wide Web,平时通过浏览器上网都属于Web。
发展阶段 安全问题 对象
Web 1.0 SQL注入,上传漏洞,文件包含,挂马暗链,命令执行 针对Web服务器
Web 2.0 XSS,CSRF,URL跳转,数据劫持,框架漏洞,逻辑漏洞,钓鱼 Web用户
  1. Web安全形势不容乐观:
  • 数量迅速增长
  • 种类迅速增多
  • 开始针对Web用户





用户






Web浏览器






Web服务器






数据库











访问网站页面



发送请求



数据库交互





返回请求结果



展示页面





用户







Web浏览器







Web服务器







数据库















DNS解析

























ip地址






ip地址










Web浏览器









通过域名获取web服务器地址









访问Web服务器








参考资料

初级

  1. 浏览器熟悉
    下载安装Chrome/Firefox浏览器,使用这两个浏览器访问《Web安全工程师》微专业站点
  2. Web架构熟悉
    1)列出Web前端相关的开发语言并了解;
    2)列出常见的Web后端相关的开发语言并了解;
    3)了解数据库服务器、Web服务器和DNS服务器。

高级

流程描述
详细的描述当我们在浏览器输入URL后的Web流程(可以网络搜索资料,自行整理描述)。

回答

初级

  1. Web前端相关的开发语言:
    Javascript,Html,CSS等
  2. Web后端相关的开发语言:
    PHP,Java,Javascript等
  3. 数据库服务器:
    SQL服务器等[存储数据的服务器]。(https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9C%8D%E5%8A%A1%E5%99%A8/613818?fr=aladdin)
    Web服务器:网页服务器,负责解析HTTP协议,让我们的浏览器可用。只有存在Web服务器的时候网页才能够被访问,一个网站实际上就是一台Web服务器,每当收到请求时便返回相应的响应。
    DNS服务器:进行域名和IP地址转换的服务器。实际浏览器访问网站时大多使用的是URL地址,DNS服务器的作用便是将URL地址转换为相应的IP地址从而使浏览器能跳转到Web服务器上去。
  4. Web流程:
    浏览器输入URL后发送到DNS服务器上,DNS服务器返回相应的IP地址,浏览器再通过IP地址访问相应的Web服务器,发送请求并获得响应页面。

课程作业

1 简单描述一下Web工作流程?(提示:分步骤)。
回答如课程回顾4。
2 使用chrome浏览器打开www.163.com,查看加载的资源。截图展示首页资源,并分别列出网页中的一个js、img资源链接。
回答:
首页资源:
首页资源

js资源链接:https://urswebzj.nosdn.127.net/webzj_cdn101/message.js

img资源链接:http://cms-bucket.ws.126.net/2019/11/02/59641c8d47f8404fa9509ffc72d48be2.jpeg?imageView&thumbnail=453y225&quality=85



第二节 Web通信

课程回顾:

  1. URL是什么,有什么作用?
  2. 描述一下URL的格式?
  3. HTTP的报文结构是什么样子?
  4. Cookie和Set-Cookie代表什么意思?
  5. Referer有什么作用?
  6. 状态码301/302和Location分别代表什么意思?

总结回答:

  1. URL:Uniform Resource Locator,统一资源定位符,支持多种协议如HTTP,FTP等。指我们平时的站点链接,比如www.baidu.com。用作定位到网站资源,如同快递中的收货地址。
  2. URL的格式:
    schema: //host[:port#]/path/…/?[query-string]#[anchor]
  1. HTTP(超文本传输协议)的报文结构:
  • 起始行(Request Line)
  • 头(Head)
  • 身体(Body)
    拿百度主页的访问为例:
GET / HTTP/1.1  ##Request Line
'''
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: BIDUPSID=3F90D00F418914753; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1452_21079_18560_29568_29221; delPer=0; BD_CK_SAM=1; PSINO=2; H_PS_645EC=85a76KN%2FNmFEdt6mXHFXchn5pcvoZBxwINrtBBoK%2Fqtp9Yqamvk2ySwWxDk; BD_HOME=0
'''           ##Head

由于请求为get 所有body内容为空。

  1. Cookie:
    指用户的凭证,包含用户的登录验证信息。
    Set-Cookie:
    指服务器端返回给用户的Cookie凭证。

  2. HTTP请求——Referer:
    可以告诉告知服务器该请求的来源。
    比如我们访问csdn,当我们直接访问csdn时返回的Head里没有Referer信息,而当我们从百度搜索页面跳转时,HTTPHead中会多出如下所示信息:

Referer: https://www.baidu.com/link?url=06sdguv5K3EpSVCAlYwPqkSt6nuWKdz7osF6O_Xg613&wd=&eqid=dd1f24b20007bfe2000000025dbd0fbf

通过Referer我们可以进行流量统计,判断来源的合法性(防盗链,防CSRF漏洞)。

  1. 301/302表示跳转状态码。当我们HTTP报文返回跳转码时,往往会附带一个Location字段,表示为当我们访问该网站时自动跳转到Location字段对应的网站。

参考资料

初级

1. 熟悉常见浏览器协议
1)学习ftp、https、file三种协议:列出每一种协议的具体说明;
2)在浏览器中使用这3种类协议访问资源:了解访问结果(包括协议类型和资源),自行整理成笔记。

2. 熟悉HTTP
1) 熟悉HTTP报文;
A、学习HTTP请求报文中的请求方式:GET、POST、HEAD、PUT、DELETE、MOVE、OPTIONS、TRACE的意义,给出总结列表及用法;
B、了解返回报文中常见状态码1XX–5XX的大致含义;
C、了解请求报文中User-Agent、Host、Cookie、X-Forwarded-For和返回包中server、Set-Cookie、 Content-Type、httponly、X-Frame-Options属性的含义;
2)了解Base64编码;
3)熟悉HTTP基本认证。

高级

简述HTTPS和HTTP的区别和联系

学习内容

了解跟HTTPS相关的CA证书、SSL的概念

回答:

  1. 浏览器协议
    ftp协议:
    File Transfer Protocol,文件传输协议,是TCP/IP协议组中的协议之一,用于客户端和文件服务器之间的文件传输。默认端口为20与21,其中20端口用于数据传输,21端口用于控制信息传输。
    https协议:
    由于http协议在安全方面存在的缺陷,出现了以安全为目标的http通道协议即https协议,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL
    file协议:
    本地协议。访问本地文件用的。
  2. HTTP请求报文中的请求方式
请求方式 意义 用法
GET 请求服务器发送资源 只请求不修改
POST 向服务器提交数据 提交数据给服务器
HEAD 了解资源一些信息和响应信息 返回实体的主体部分
PUT 在服务器上创建文档 向服务器提交一个文档,若存在就覆盖
DELETE 删除服务器资源 删除指定资源,不保证一定被删除
MOVE 转移服务器地址 将服务器页面转移到另一服务器地址
OPTIONS 查看当前URL支持的方法 请求成功会返回名为“Allow”的头,包含支持的方法
TRACE 查看在途中是否被修改 Trace在服务器端发起回环并返回经过途中后的请求

状态码1XX–5XX的大致含义

状态码 含义
1xx 临时响应
2xx 成功接收
3xx 客户端必须采取额外操作
4xx 发生错误,客户端似乎有问题
5xx 服务器错误

报文中属性的含义:

属性 含义
User-Agent 告诉服务器客户端的操作系统及浏览器信息
Host 指定要请求的资源所在主机和端口,从url获取
Cookie 客户端储存的用于服务器辨别用户身份
X-Forwarded-For 提供原始客户端及通过的代理服务器ip
server 服务器所使用的web平台名称
Set-Cookie 给客户端分配Cookie
Content-Type 返回内容的 MIME类型
httponly 只要浏览器支持HttpOnly标志,客户端脚本就无法访问cookie
X-Frame-Options 指示浏览器是否允许一个页面可在、