前端必须懂的计算机网络知识—(XSS、CSRF和HTTPS)

前端必须懂的计算机网络知识系列文章:

  • DNS服务器和跨域问题
  • 计算机网络的分层模型
  • IP地址和MAC地址
  • 前端必须懂的计算机网络知识—(跨域、代理、本地存储)
  • 前端必须懂的计算机网络知识—(TCP)
  • 前端必须懂的计算机网络知识—(HTTP)
  • 前端必须懂的计算机网络知识—(XSS、CSRF和HTTPS)

HTTP为什么不安全

  1. 可能被窃听:
  • HTTP 本身不具备加密的功能,HTTP 报文使用明文方式发送
  • 由于互联网是由联通世界各个地方的网络设施组成,所有发送和接收经过某些设备的数据都可能被截获或窥视。(例如大家都熟悉的抓包工具:Wireshark),即使经过加密处理,也会被窥视是通信内容,只是可能很难或者无法破解出报文的信息而已
  1. 认证问题
  • 无法确认你发送到的服务器就是真正的目标服务器(可能服务器是伪装的)
  • 无法确定返回的客户端是否是按照真实意图接收的客户端(可能是伪装的客户端)
  • 无法确定正在通信的对方是否具备访问权限,Web服务器上某些重要的信息,只想发给特定用户即使是无意义的请求也会照单全收。无法阻止海量请求下的 DoS 攻击(Denial of Service,拒绝服务攻击)。
  1. 可能被篡改
  • 请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击被称为中间人攻击(Man-in-the-Middle attack,MITM)。

XSS攻击

XSS,即为(Cross Site Scripting),中文名为跨站脚本,跨站脚本的重点不在“跨站”上,而在于“脚本”上。大多数XSS攻击的主要方式是嵌入一段远程或者第三方域上的JS代码,实际上是在目标网站的作用域下执行了这段第三方域上的js代码。

反射型XSS(非持久型XSS)

特点:就像镜子反射一样,浏览器发射含XSS的url,服务器将其反射回来

  1. 浏览器发生请求时,XSS代码出现在请求URL中,作为参数提交到服务器,
  2. 服务器解析并响应,响应结果中包含XSS代码,
  3. 最后浏览器解析并执行。

案例:表单提交

//test.html