什么是 XSS 攻击?定义、类型、预防

安全资讯 小布 180浏览 0评论

也许你一直在思考什么是 XSS 攻击。跨站脚本攻击,也称为 XSS 攻击,是一种将恶意脚本注入其他良性和受信任网站的注入方式。

XSS 攻击是如何发生的?

当攻击者运用在线应用程序将恶意代码(一般以浏览器端脚本的方式)发送给不同的最终用户时,就会产生 XSS 攻击。不幸的是,允许这些进犯成功的漏洞很遍及,而且产生在在线应用程序在其生成的输出中使用来自用户的输入而不对其进行验证或编码的任何地方。

攻击者能够运用XSS向毫无戒心的用户发送恶意脚本,用户的浏览器无法知道该脚本不行信赖并会履行该脚本。

考虑到有问题的脚本来自可信来历,歹意脚本现在能够自由拜访浏览器之前保存的任何 cookie、会话令牌或其他敏感数据,或者重写 HTML 页面的内容。

恶意内容一般选用 JavaScript 段的方式,但也或许包含 HTML、Flash 或浏览器或许履行的其他特定代码。

XSS 进犯的或许性几乎是无限的,但一般包含向进犯者传输隐私数据(如 cookie 或其他会话信息)、将受害者重定向到攻击者操控的 Web 内容或在用户机器上履行其他恶意操作。

XSS 攻击的类型

这些攻击可以分为三个主要类别:存储型、反射型和基于 DOM 的 XSS,其中最常见的是存储型 XSS 和反射型攻击。

存储攻击或持久性 XSS

这些是在注入的脚本永久存储在目标服务器上时定义的,例如在数据库、消息论坛、访问者日志或评论字段中。受害者然后在请求存储的信息时从服务器检索恶意脚本。

反射攻击

他们从服务器采纳的行动中获得他们的姓名,在这种情况下,注入的脚本会从 Web 服务器上反映出来,例如错误消息、查找结果或任何其他呼应,其间包括发送到服务器的部分或全部输入作为恳求的一部分。它们通过其他途径发送给受害者,例如通过电子邮件或其他网站。

当用户被诱骗点击恶意链接、提交特制表单或可能仅仅阅读恶意站点时,注入的代码会传播到易受攻击的网站,从而将攻击反映到用户的游览器。然后游览器执行代码,由于它来自“受信赖的”服务器。反射型 XSS 有时也称为非持久性或 II 型 XSS。

如何保持安全?

实践证明,要有效防止XSS漏洞,需要涉及到以下几个方面的措施:

到达时过滤输入

理想情况下,您应该在到达过滤输入,这意味着接收用户输入的目的您应该尽可能严格地过滤支持预期或有效输入的内容。

对输出的数据进行编码

您可以对输出进行编码以阻止其被解释为活动内容,但根据输出上下文,这可能需要应用 HTML、URL、JavaScript 和 CSS 编码的组合。

仅使用适当的响应头

为了防止不打算包含任何 HTML 或 JavaScript 的 HTTP 响应中的XSS,您应该使用 Content-Type 和 X-Content-Type-Options 标头,并确保浏览器按照您希望的方式对响应进行解码。

制定内容安全政策

作为最后一道防线,您可以使用内容安全策略来降低同时发生的任何 XSS 漏洞的严重性。

转载请注明:布尔云安的博客 » 什么是 XSS 攻击?定义、类型、预防

头像
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址