web安全 - XSS类型
2022/9/8 23:54:32
本文主要是介绍web安全 - XSS类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 传统分类
-
反射型XSS (Reflected XSS)
当web应用在搜索结果,错误消息或其他响应返回用户输入时,就会发生反射型XSS。最常见的做法
是攻击者利用web应用的xss漏洞,构造一个url,通过邮件短信等方式诱导用户点击,当请求发出后,
web应用返回url中隐藏的恶意代码,并在用户浏览器中执行,从而发生发射型XSS。 -
存储型XSS (Stored XSS)
当web应用未对用户输入进行安全校验时,恶意代码可能会被输入并存储到服务器的数据库,当其他用户
浏览相关页面时,恶意代码就会从数据库中取出,并发送到用户浏览器中进行执行,从而形成多用户,
持久性的攻击,从而形成存储型xss。 -
基于Dom的XSS (Dom Based XSS)
数据源在Dom中,接收器也在Dom中,数据流不会离开浏览器。数据源可能是页面的URL,也可能是HTML
的一个元素,最常见的是来自ajax请求返回响应数据。 而接收器则是一个敏感的方法调用, 比如
Element.innerHTML, document.write, eval等它会导致 执行恶意的数据。
2. 新分类
-
服务端XSS (Server XSS)
当恶意代码包含在服务器生成的HTTP响应中时,就会发生服务端XSS。此恶意代码数据可能来自请求,
也可能来自数据库存储,因此服务端XSS,即可能包含反射型XSS,也可能包含存储型XSS。
这种情况,整个漏洞都在服务端代码中,浏览器只是响应并执行嵌入其中的任何有效脚本。 -
客户端XSS (Client XSS)
当使用不受信任的用户提供的数据通过不安全的javascript调用更新Dom时,就会发生客户端XSS。
此数据的来源可能来自Dom,也可能是服务器发送的。数据的最终来源可能来自请求,或者来自客户端
或服务器上的存储位置。因此客户端XSS可能具有反射型XSS,也可能包含存储型XSS。基于Dom的XSS只是
客户端XSS的一个子集,其数据源来自于Dom中的某个位置而不是服务器。 -
XSS 分类矩阵
| XSS | 服务端 | 客户端 |
|-----|-----|-----|
| 存储型 | 服务端存储型XSS | 客户端存储型XSS |
| 反射型 | 服务端反射型XSS | 客户端反射型XSS | -
服务端XSS防御
服务端XSS是由在HTML响应中包含不受信任的数据引起的,因此在大多数情况下,针对服务端XSS
最简单和最强的防御是:上下文相关的服务器端输出编码。(HTML实体编码,javascript编码,url编码) -
客户端XSS防御
当使用不受信任的数据通过不安全的javascript调用更新Dom时,会导致客户端XSS。针对客户端XSS最
简单和最强的防御是:使用安全的javascript API。如果某个javascrpt API 是不安全的(eval ), 则建议找到替代的安全方法来使用(JSON.parse).
如果由于某种原因无法使用安全的替代方法,则可以在浏览器中完成上下文相关的输出编码,然后将
该数据传递给不安全的javascript 方法。
这篇关于web安全 - XSS类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23JAVA语音识别项目入门教程
- 2024-11-23Java云原生学习:从入门到实践
- 2024-11-22Java创业学习:初学者的全面指南
- 2024-11-22JAVA创业学习:零基础入门到实战应用教程
- 2024-11-22Java创业学习:从零开始的Java编程入门教程
- 2024-11-22Java对接阿里云智能语音服务学习教程
- 2024-11-22JAVA对接阿里云智能语音服务学习教程
- 2024-11-22Java对接阿里云智能语音服务学习教程
- 2024-11-22Java副业学习:零基础入门到实战项目
- 2024-11-22Java副业学习:零基础入门指南