美文网首页
图解 HTTP

图解 HTTP

作者: phpnet | 来源:发表于2019-12-27 08:13 被阅读0次

常见 Web 的攻击技术

互联网上的攻击大都将 Web 站点作为目标。常见的攻击手段有哪些,以及攻击会造成怎样的影响。

简单的 HTTP 协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用 HTTP 协议的服务器和客户端,以及运行在服务器上的 Web 应用等资源才是攻击目标。

针对 Web 应用的攻击模式有2种:

主动攻击:主动攻击(active attack)是指攻击者通过直接访问 Web 应用,把攻击代码传入的攻击模式。由于该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源。主动攻击模式里具有代表性的攻击是 SQL 注入攻击和 OS 命令注入攻击。

被动攻击:被动攻击(passive attack)是指利用圈套策略执行攻击代码的攻击模式。在被动攻击过程中,攻击者不直接对目标 Web 应用访问发起攻击。被动攻击模式中具有代表性的攻击是跨站脚本攻击(xss)和跨站点请求伪造(csrf)。

被动攻击通常的攻击模式如下所示。

  1. 攻击者诱使用户触发已设置好的陷阱,而陷阱会启动发送已嵌入攻击代码的 HTTP 请求。
  2. 当用户不知不觉中招之后,用户的浏览器或邮件客户端就会触发这个陷阱。
  3. 中招后的用户浏览器会把含有攻击代码的 HTTP 请求发送给作为攻击目标的 Web 应用,运行攻击代码。
  4. 执行完攻击代码,存在安全漏洞的 Web 应用会成为攻击者的跳板,可能导致用户所持的 Cookie 等个人信息被窃取,登录状态中的用户权限遭恶意滥用等后果。

实施 Web 应用的安全对策可大致分为以下两部分。

  • 客户端的验证Web 应用端(服务器端)的验证
  • 输入值验证
  • 输出值转义

多数情况下采用 JavaScript 在客户端验证数据。可是在客户端允许篡改数据或关闭 JavaScript,不适合将 JavaScript 验证作为安全的防范对策。保留客户端验证只是为了尽早地辨识输入错误,起到提高 UI 体验的作用。Web 应用端的输入值验证按 Web 应用内的处理则有可能被误认为是具有攻击性意义的代码。输入值验证通常是指检查是否是符合系统业务逻辑的数值或检查字符编码等预防对策。

站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的 Web 网站注册用户的浏览器内运行非法的 HTML 标签或 JavaScript 进行的一种攻击。动态创建的 HTML 部分有可能隐藏着安全漏洞。就这样,攻击者编写脚本设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击。

跨站脚本攻击有可能造成以下影响:

  • 利用虚假输入表单骗取用户个人信息。
  • 利用脚本窃取用户的 Cookie 值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
  • 显示伪造的文章或图片。

HTTP 头信息

请求字段(Request)

字段名 说明 示例
Accept 指定客户端能够接收的内容类型 Accept: text/html
Accept-Charset 客户端可以接受的字符编码集 Accept-Charset: utf-8
Accept-Encoding 能够接受的内容编码方式 Accept-Encoding:gzip, deflate
Accept-Language 可以接受的自然语言列表 Accept-Language:zh-CN,zh;q=0.9,en;q=0.8
Accept-Datetime 指定接受的版本时间 Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT
Authorization 用于身份认证的凭证信息 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control 指定请求缓存机制 Cache-Control: no-cache
Connection 连接类型(默认持久连接) Connection: keep-alive
Cookie 向服务器发送的Cookie信息 Cookie: $Version=1; Skin=new;
Content-Length 请求信息长度 Content-Length: 348
Content-Type 当前请求MIME类型 Content-Type:application/json; charset=utf-8
Date 发送时间 Date:Thu, 23 Nov 2017 14:41:17 GMT
Expect 指明需要的特定服务器行为 Expect: 100-continue
From 发起请求的用户邮箱 From: admin@321dh.com
Host 指明请求服务器的域名和端口号 Host:www.321dh.com:80
If-Match 只有请求内容与实体相匹配才有效 If-Match: "737060cd8c284d8af7ad3082f209582d"
If-Modified-Since 设置更新时间 If-Modified-Since: Sat,29 Oct 1994 19:43:31 GMT
If-None-Match 设置客户端ETag值 If-None-Match: "737060cd8c284d8af7ad3082f209582d"
If-Range 适用于断点续传下载 If-Range: "737060cd8c284d8af7ad3082f209582d"
If-Unmodified-Since 请求体在给定时间未修改才响应 If-Unmodified-Since: Sat,29 Oct 1994 19:43:31 GMT
Max-Forwards 限制代理或网关转发消息的次数 Max-Forwards: 10
Origin 跨域资源请求的地址 Origin: http://www.321dh.com
Pragma 设置特殊实现的指令 Pragma: no-cache
Proxy-Authorization 向连接代理认证的凭证信息 Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range 指定请求返回的字节数范围 Range: bytes=500-999
Referer 表明当前请求从哪个页面过来的 Referer: http://www.321dh.com
TE 指明期望使用的传输编码 TE: trailers, deflate
User-Agent 请求用户的身份信息 Mozilla/5.0 (Mac OS X 10_13_1) Chrome/62.0.3202.94 Safari/537.36
Upgrade 请求服务端升级协议 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Via 表明请求代理的来源地址 Via: 1.0 fred, 1.1 example.com(Apache/1.1)
Warning 消息实体中可能存在错误的警告 Warning: 199 Miscellaneous warning

常见的非标准请求字段

字段名 说明 示例
X-Requested-With 指明Ajax及可扩展标记语言请求 X-Requested-With: XMLHttpRequest
DNT 设置是否停止跟踪用户 DNT: 1
X-Forwarded-For 表明客户端最终连接服务器的地址 X-Forwarded-For: client1, proxy1, proxy2
X-Forwarded-Host 表明客户端要请求的原始主机 X-Forwarded-Host: www.321dh.com:80
X-Csrf-Token 防止跨站请求伪造 X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql

响应字段(Response)

字段名 说明 示例
Access-Control-Allow-Origin 指定参与跨域的网站 Access-Control-Allow-Origin: *
Access-Control-Allow-Methods 允许的请求方法 Access-Control-Allow-Methods: GET, PUT, POST, DELETE
Accept-Patch 支持的文件类型 Accept-Patch: text/example;charset=utf-8
Accept-Ranges 支持的部分内容范围类型 Accept-Ranges: bytes
Age 当前对象缓存时长 Age: 244
Allow 对于特定资源有效的动作 Allow: GET, HEAD
Cache-Control 指定缓存机制 Cache-Control: max-age=3600
Connection 连接类型(默认持久连接) Connection: keep-alive
Content-Disposition 告知下载文件的名称 Content-Disposition: attachment; filename="name.ext"
Content-Encoding 数据编码方式 Content-Encoding: gzip
Content-Language 响应内容使用的语言 Content-Language: da
Content-Length 信息长度 Content-Length: 348
Content-Location 响应数据的地址选项 Content-Location: /index.htm
Content-Type 当前内容的MIME类型 Content-Type:application/json
Date 响应时间 Date:Fri, 24 Nov 2017 02:59:05 GMT
Expires 过期时间 Expires:Mon, 27 Nov 2017 15:20:50 GMT
Last-Modified 最后修改时间 Last-Modified:Mon, 13 Nov 2017 20:19:12 GMT
Location 重定向地址 Location: http://www.321dh.com/index.html
Pragma 特殊实现的指令 Pragma: no-cache
Public-Key-Pins 用于缓解中间人攻击 Public-Key-Pins: max-age=250; pin-sha256="ozYqqbQ2yXLVKB9="
Refresh 设置重定向跳转 Refresh: 5; url=http://www.321dh.com
Server 服务器信息 Server: nginx/1.13.3
Set-Cookie 发送给客户端的数据 Set-Cookie: UserID=JohnDoe; Max-Age=3600;
Status 状态 Status: 304
Transfer-Encoding 数据传输的编码方式 Transfer-Encoding: chunked
Upgrade 要求客户端升级协议 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Vary 匹配请求协议方式 Vary: Accept-Encoding
Via 告知客户端当前响应发送的途径 Via: 1.0 fred, 1.1 321dh.com
WWW-Authenticate 指定请求使用的认证方式 WWW-Authenticate: Basic

常见的非标准响应字段

字段名 说明 示例
X-XSS-Protection XSS跨站脚本攻击过滤器 X-XSS-Protection: 1; mode=block
X-Content-Type-Options 防止客户端嗅探文件MIME类型 X-Content-Type-Options: nosniff
X-Powered-By 显示响应脚本语言 X-Powered-By: PHP/5.4.0
X-UA-Compatible 推荐指定的渲染引擎来显示内容 X-UA-Compatible: IE=edge

相关文章

  • 《图解HTTP》

    网络基础TCP/IPTCP/IP协议族说法一:TCP/IP是指TCP和IP两种协议说法二:TCP/IP是在IP协议...

  • 【图解 HTTP】

    HTTP 1.1 标准的通信过程:HTTP 方法协议格式保温结构首部字段状态码 web 安全httpsSSL证书认...

  • 图解HTTP

    第一章 了解Web及网络基础 1.1 使用HTTP协议访问Web 1.2 HTTP的诞生 1.2.1 为知识共享而...

  • 《图解HTTP》

    译者序 讲解网络协议的权威书籍有两本《HTTP权威指南》《TCP/IP详解》但是对初学者不是很友好 HTTP本身不...

  • 图解-HTTP

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务...

  • 图解HTTP

    HTTP是不保存状态的协议,协议本身不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事物,确保协议的可...

  • 《图解http》

    1.5 负责域名解析的DNS服务DNS(Domain Name System)服务是和HTTP协议一样位于应用层的...

  • 图解HTTP

    HTTP (HyperText Transfer Protocol 超文本传输协议) HTTP 在应用层 决定向...

  • 图解HTTP

    链接: https://pan.baidu.com/s/1bp08VvT 密码: nnyd 章节一:了解Web及网...

  • 图解http

    了解Web及网络基础 使用HTTP协议访问Web浏览器(客户端)在地址栏里输入要访问的页面(URL),客户端从服务...

网友评论

      本文标题:图解 HTTP

      本文链接:https://www.haomeiwen.com/subject/pbyroctx.html