前语
Web进犯(WebAttack)是针对用户上网行为或网站服务器等设备进行进犯的行为,如植入歹意代码,修正网站权限,获取网站用户隐私信息等等。
常见的Web进犯方法有以下几种
- XSS (Cross Site Scripting) 跨站脚本进犯
- CSRF(Cross-site request forgery)跨站恳求伪造
- SQL注入进犯
本文首要讲解XSS方面。
XSS是什么
XSS,跨站脚本进犯,允许进犯者将歹意代码植入到提供给其它用户运用的页面中。 它涉及到三方,即进犯者、客户端与Web
运用。XSS
的进犯方针是为了盗取存储在客户端的cookie
或许其他网站用于辨认客户端身份的敏感信息。一旦获取到合法用户的信息后,进犯者乃至能够凭借合法用户的身份信息与网站进行交互。
XSS 有哪些类型
根据进犯的来历,XSS
进犯能够分成:
- 存储型
- 反射型
- DOM 型
存储型XSS
存储型XSS
的进犯过程:
- 进犯者将歹意代码提交到方针网站的数据库中
- 用户翻开方针网站时,网站服务端将歹意代码从数据库取出,拼接在 HTML 中返回给浏览器
- 用户浏览器接收到呼应后解析履行,混在其间的歹意代码也被履行
- 歹意代码盗取用户数据并发送到进犯者的网站,或许假充用户的行为,调用方针网站接口履行进犯者指定的操作
这种进犯常见于带有用户保存数据的网站功用,如论坛发帖、产品评论、用户私信等。
反射型XSS
反射型XSS
的进犯过程:
- 进犯者构造出特别的URL,其间包含歹意代码
- 用户翻开带有歹意代码的URL 时,网站服务端将歹意代码从URL中取出,拼接在HTML中返回给浏览器
- 用户浏览器接收到呼应后解析履行,混在其间的歹意代码也被履行
- 歹意代码盗取用户数据并发送到进犯者的网站,或许假充用户的行为,调用方针网站接口履行进犯者指定的操作
区别:
- 存储型XSS的歹意代码存在数据库里,反射型XSS的歹意代码存在URL里。
反射型XSS缝隙常见于经过URL传递参数的功用,如网站查找、跳转等。因为需要用户主动翻开歹意的 URL 才干收效,进犯者往往会结合多种手段诱导用户点击。
DOM
型XSS
DOM
型XSS
的进犯过程:
- 进犯者构造出特别的URL,其间包含歹意代码
- 用户翻开带有歹意代码的URL
- 用户浏览器接收到呼应后解析履行,前端
JavaScript
取出URL
中的歹意代码并履行 - 歹意代码盗取用户数据并发送到进犯者的网站,或许假充用户的行为,调用方针网站接口履行进犯者指定的操作
区别:DOM 型 XSS 进犯中,取出和履行歹意代码由浏览器端完成,归于前端 JavaScript 自身的安全缝隙,而其他两种 XSS 都归于服务端的安全缝隙。
如何对XSS进犯进行防备呢?
经过前面介绍,看到XSS
进犯的两方面:
- 进犯者提交歹意代码
- 浏览器履行歹意代码
针对这两个方面就能够得出几条防备措施:
- 输入验证与过滤:
- 输出编码:
- 运用安全框架和东西:
- 实施内容安全策略(CSP):
1.输入验证与过滤:
保证对所有用户输入的数据进行严厉验证和过滤,包含表单提交、URL 参数、Cookie 等。运用白名单过滤机制,只允许特定的字符和标签经过,过滤掉所有潜在的歹意代码。这样能够避免进犯者向运用程序提交歹意脚本。
2.输出编码:
在将用户数据输出到 HTML 页面时,运用适当的编码方法对数据进行转义,保证浏览器不会将其解析为可履行的脚本。常用的编码方法包含 HTML 实体编码(例如将 <
转换为 <
)和 JavaScript 编码(例如将 '
转换为 '
)。这样能够避免歹意脚本在用户浏览器中履行。
3.运用安全框架和东西:
利用现有的安全框架和东西来协助检测和防御 XSS 进犯。例如,能够运用 Web 运用程序防火墙(WAF)来检测歹意恳求,而且能够配置特定的规矩来避免 XSS 进犯。还能够运用专门的 XSS 过滤器来检测和过滤潜在的 XSS 进犯载荷。
4.实施内容安全策略(CSP):
内容安全策略(Content Security Policy,CSP)是一种经过 HTTP 头部来操控页面加载资源的策略,能够有效减轻 XSS 进犯的危险。经过 CSP,能够限制页面加载的资源来历,包含脚本、样式表、图片等,然后避免歹意脚本的履行。