前语

Web进犯(WebAttack)是针对用户上网行为或网站服务器等设备进行进犯的行为,如植入歹意代码,修正网站权限,获取网站用户隐私信息等等。

常见的Web进犯方法有以下几种

  • XSS (Cross Site Scripting) 跨站脚本进犯
  • CSRF(Cross-site request forgery)跨站恳求伪造
  • SQL注入进犯

本文首要讲解XSS方面。

XSS是什么

XSS,跨站脚本进犯,允许进犯者将歹意代码植入到提供给其它用户运用的页面中。 它涉及到三方,即进犯者、客户端与Web运用。XSS的进犯方针是为了盗取存储在客户端的cookie或许其他网站用于辨认客户端身份的敏感信息。一旦获取到合法用户的信息后,进犯者乃至能够凭借合法用户的身份信息与网站进行交互。

XSS 有哪些类型

根据进犯的来历,XSS进犯能够分成:

  • 存储型
  • 反射型
  • DOM 型

存储型XSS

存储型XSS的进犯过程:

  1. 进犯者将歹意代码提交到方针网站的数据库中
  2. 用户翻开方针网站时,网站服务端将歹意代码从数据库取出,拼接在 HTML 中返回给浏览器
  3. 用户浏览器接收到呼应后解析履行,混在其间的歹意代码也被履行
  4. 歹意代码盗取用户数据并发送到进犯者的网站,或许假充用户的行为,调用方针网站接口履行进犯者指定的操作

这种进犯常见于带有用户保存数据的网站功用,如论坛发帖、产品评论、用户私信等。

反射型XSS

反射型XSS的进犯过程:

  1. 进犯者构造出特别的URL,其间包含歹意代码
  2. 用户翻开带有歹意代码的URL 时,网站服务端将歹意代码从URL中取出,拼接在HTML中返回给浏览器
  3. 用户浏览器接收到呼应后解析履行,混在其间的歹意代码也被履行
  4. 歹意代码盗取用户数据并发送到进犯者的网站,或许假充用户的行为,调用方针网站接口履行进犯者指定的操作

区别:

  • 存储型XSS的歹意代码存在数据库里,反射型XSS的歹意代码存在URL里。

反射型XSS缝隙常见于经过URL传递参数的功用,如网站查找、跳转等。因为需要用户主动翻开歹意的 URL 才干收效,进犯者往往会结合多种手段诱导用户点击。

DOMXSS

DOMXSS的进犯过程:

  1. 进犯者构造出特别的URL,其间包含歹意代码
  2. 用户翻开带有歹意代码的URL
  3. 用户浏览器接收到呼应后解析履行,前端JavaScript取出URL中的歹意代码并履行
  4. 歹意代码盗取用户数据并发送到进犯者的网站,或许假充用户的行为,调用方针网站接口履行进犯者指定的操作

区别:DOM 型 XSS 进犯中,取出和履行歹意代码由浏览器端完成,归于前端 JavaScript 自身的安全缝隙,而其他两种 XSS 都归于服务端的安全缝隙。

如何对XSS进犯进行防备呢?

经过前面介绍,看到XSS进犯的两方面:

  • 进犯者提交歹意代码
  • 浏览器履行歹意代码

针对这两个方面就能够得出几条防备措施:

  1. 输入验证与过滤:
  2. 输出编码:
  3. 运用安全框架和东西:
  4. 实施内容安全策略(CSP):

1.输入验证与过滤:

保证对所有用户输入的数据进行严厉验证和过滤,包含表单提交、URL 参数、Cookie 等。运用白名单过滤机制,只允许特定的字符和标签经过,过滤掉所有潜在的歹意代码。这样能够避免进犯者向运用程序提交歹意脚本。

2.输出编码:

在将用户数据输出到 HTML 页面时,运用适当的编码方法对数据进行转义,保证浏览器不会将其解析为可履行的脚本。常用的编码方法包含 HTML 实体编码(例如将 < 转换为 &lt;)和 JavaScript 编码(例如将 ' 转换为 ')。这样能够避免歹意脚本在用户浏览器中履行。

3.运用安全框架和东西:

利用现有的安全框架和东西来协助检测和防御 XSS 进犯。例如,能够运用 Web 运用程序防火墙(WAF)来检测歹意恳求,而且能够配置特定的规矩来避免 XSS 进犯。还能够运用专门的 XSS 过滤器来检测和过滤潜在的 XSS 进犯载荷。

4.实施内容安全策略(CSP):

内容安全策略(Content Security Policy,CSP)是一种经过 HTTP 头部来操控页面加载资源的策略,能够有效减轻 XSS 进犯的危险。经过 CSP,能够限制页面加载的资源来历,包含脚本、样式表、图片等,然后避免歹意脚本的履行。