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

第一节 Web介绍

课程回顾:

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

总结回答:

  1. Web指的是World Wide Web,平时通过浏览器上网都属于Web。
发展阶段安全问题对象
Web 1.0SQL注入,上传漏洞,文件包含,挂马暗链,命令执行针对Web服务器
Web 2.0XSS,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指示浏览器是否允许一个页面可在<frame>、<iframe>、<embed>、<object>展示
  1. Base64编码:
    Base64编码是一种传输8bit字节码的编码方式,其采用了64个可打印字符来表示二进制数据,起初目的是解决8bit编码超出ASCII码无法传输的问题(8bit范围为0-255,而ASCII码为0-127),因此将每24bit作为四个6bit字符补零成8bit字符后再传输这样就不会超过ASCII码范围。
  2. HTTP基本认证:
客户端 服务器 http request 401 Unauthozied Authorization header(包含用户名和密码) 资源 客户端 服务器
  1. HTTP与HTTPS比较:
方面HTTPHTTPS
协议HTTPHTTP
URLhttp://https://
安全性不安全安全
端口80443
网络模型应用层传输层
保密性无需加密数据加密
认证证书无需证书需要认证证书

课程作业

1. 请指出url “http://vip.163.com:8080/users/getid?id=123&return= http%3A%2f%2fwww.163.com #23”
schemahostpathportquery-stringanchor 分别是什么?

回答:

  • schema:http
  • host: vip.163.com
  • port: 8080
  • path:users/getid
  • query-string:id=123&return= http%3A%2f%2fwww.163.com
  • anchor:23

2. 下图为HTTP响应报文,请指出状态行、消息报头、响应正文的位置。(以行数表示)。

回答:
1行为状态行
2-12行为消息报头
14行之后为响应正文

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值