css源有-安全技术研究-XSS攻击

2023-09-28 0 6,122 百度已收录

介绍

跨站脚本攻击,也称为 XSS,是一种允许黑客操纵合法用户和 Web 应用程序之间交互的漏洞。 攻击者可以利用此漏洞绕过同源策略并在合法用户不知情的情况下执行任意恶意操作css源有,包括获取对其数据的访问权限。 如果受害者用户拥有应用程序的特权访问权限,攻击者还可以使用 XSS 重新获得对应用程序的控制。

XSS攻击通常发生在Web应用程序中。 包含攻击代码的数据通常以 Web 请求的形式接收。 这些恶意数据未经验证就反馈到用户的HTTP响应中。

XSS攻击一般可以分为以下三类。

反射式 XSS

反射型XSS是指应用程序通过Web请求获取不可信数据并将其发送给用户,而不验证数据是否包含恶意代码。 反射型XSS一般可以通过攻击者构造带有恶意代码参数的URL来实现。 构造的URL地址打开后,其中包含的恶意代码参数会被浏览器解析并执行。 这种攻击的特点是非持久性,必须在用户点击包含恶意代码参数的链接时触发。 其实XSS和SQL注入类似,只不过一个是针对数据库的,一个是针对HTML的。 通过您提交的数据,反射型XSS可以轻松更改用户数据并窃取用户信息。

另一种方式是攻击者通过电子邮件向受害者传递恶意URL,从而误导用户点击恶意链接。 注入的代码被传输到易受攻击的网站,从而向用户的浏览器反映有效的攻击负载。 由于该代码来自“受信任”的服务器,因此浏览器会执行恶意代码。

存储型 XSS

在存储型 XSS 攻击中,注入的脚本作为合法内容存储在目标应用程序中,例如峰会中的消息或博客文章中的评论。注入的代码存储在数据库中,并在检索请求时发送给用户。收到,从而在受害者的浏览器中执行有效的漏洞利用负载

基于 DOM 的 XSS

当页面中的 JavaScript 从 HTML 中的源代码(例如 document.location)获取用户提供的数据,并将其传递给允许运行 JavaScript 代码的 JavaScript 函数(例如innerHTML())时,可能会出现基于 DOM 的 XSS 漏洞。 另一个经典的攻击媒介是向受害者传递攻击负载(例如,电子邮件或虚假的合法网站),从而误导用户访问恶意链接,恶意代码将立即在用户的浏览器中执行。

影响和危害

css源有-安全技术研究-XSS攻击

XSS 攻击会导致用户的会话 cookie 泄露,从而使攻击者能够劫持用户的会话并接管帐户。 即使使用 HTTPOnly 来保护 cookie,攻击者仍然可以通过冒充受影响网站的用户来执行恶意操作。

与 OWASP Top 10 中的其他严重漏洞一样,XSS 攻击会对用户系统造成严重损害。如前所述,如果黑客绑架了持有“王国钥匙”(即拥有应用程序访问权限/管理权限)的用户css源有,结果可能是毁灭性的

如何防护

通过在服务器端执行适当的验证和通配符可以减轻 XSS 攻击。 执行输出时也可以对不受信任的 HTML 上下文类型的数据进行编码(例如,使用通配符语法)。

输入验证

精确匹配:仅接受有限已知列表中的值。 (全数组匹配的白名单)

允许列表:如果无法创建包含所有可能值的列表,则仅接受已知数据并拒绝所有意外输入。 (正则表达式白名单)

拒绝列表:如果允许列表模式不可用,则拒绝所有已知错误值。 (黑名单)

输出编码

输出编码用于将不可信的输入转换为安全的方式,输入内容只会作为数据显示给用户,而不会被视为代码并被浏览器执行。 当数据离开应用程序到下游组件时,执行输出编码。 下表列出了可能使用不可信输入的下游上下文:

语境

css源有-安全技术研究-XSS攻击

代码

编码

HTML 正文

用户控制数据

HTML 编码

HTML 属性

HTML 属性编码

网址参数

搜索

网址编码

CSS

css源有-安全技术研究-XSS攻击

选择

CSS 十六进制编码

JavaScript

JavaScript 编码

下表详细介绍了防止XSS所需的输出编码方法:

编码类型

编码机制

HTML 实体编码

转换成&

转换 转换 > 为 >

转换成 ”

css源有-安全技术研究-XSS攻击

转换成 '

转换成 /

HTML 属性编码

除字母数字字符外,使用 HTML 实体 &#xHH; 转义所有字符格式,包括空格。 (HH = 十六进制值)

网址编码

有关标准百分比编码,请参阅此处。 URL 编码只能用于对参数值进行编码,而不是对整个 URL 或 URL 的路径片段进行编码。

JavaScript 编码

除字母数字字符外,使用 uXXXX unicode 转义格式对所有字符进行转义(XX = 整数)

CSS 十六进制编码

CSS 转义支持 XX 和 XXXXXX。 如果下一个字符继续转义序列,则使用两个字符转义可能会导致问题。 有两种解决方案:

- 在CSS转义之后添加一个空格(它将被CSS解析器忽略)

css源有-安全技术研究-XSS攻击

- 通过对值进行零填充来使用尽可能多的 CSS 转义。

纵深防御

内容安全策略 (CSP)

内容安全策略 (CSP) 是一种浏览器机制,可为 Web 应用程序的客户端资源(例如 JavaScript、CSS、图像等)创建源允许列表。 CSP 通过特殊的 HTTP 标头指示浏览器仅执行或呈现来自这些源的资源。

例如:

Content-Security-Policy: default-src: 'self'; script-src: 'self' static.domain.tld

上述 CSP 将指示 Web 浏览器仅从页面的​​原始文件和 static.domain.tld 中的 JavaScript 源代码文件加载资源。 有关内容安全策略的更多详细信息,包括其用途和使用方法,请参阅。

X-XSS-保护标头

此 HTTP 响应标头启用某些 Web 浏览器中内置的跨站点脚本 (XSS) 过滤器。 通常情况下,标头是默认启用的,因此其目的是在用户禁用特定网站时重新启用过滤器。

内容类型

为了避免嵌入的非 HTML HTTP 响应数据被危险地解析为 HTML 或 JavaScript 数据,建议始终在 HTTP 响应中发送 Content-Type 标头,以确保浏览器按照预期方法对其进行解析。

现代框架

新的 JavaScript 框架(例如 AngularJS、ReactJS)或服务器端模板系统(例如 Go 模板)具有强大的外部保护,以避免反射的跨站脚本。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css css源有-安全技术研究-XSS攻击 https://www.wkzy.net/game/197889.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务