1

我问的原因是我告诉我们的供应商他们必须将 MS AntiXSS 库与他们制作的 ASP.NET UI 组件一起使用,但他们也与 Flex 一起构建基于 Flash 的 UI - 我想知道是否Flash 有一个等价物(假设它是 vunerable)。

4

2 回答 2

2

如果我理解正确...

ASP.NEt 用于制作网页,他们制作的所有 UI 组件都将以 HTML / JavaScript 的形式在浏览器中运行。那是对的吗?

如果是这种情况,我可以理解为什么在这种情况下防止跨站点脚本很重要。

使用 Flex(在 Flash Player 中运行),所有内容都被编译成一个二进制文件,称为 SWF。大多数时候,SWF 在 Flash Player 中运行,Flash Player 作为插件在浏览器中运行。没有办法使用 XSS 破解单个 Flex 组件。

我不相信您编写的代码需要受到跨站点脚本的保护。您最大的恐惧是玩家的漏洞,您无法控制这些漏洞。

这些都不应该成为不验证用户输入的理由。

于 2010-10-07T23:03:06.917 回答
1

简短的回答是:Flash 播放器有很多功能可以防止 XSS 攻击,但它们是内置在播放器本身中的,因此您不需要使用任何特定的库。如果您不调用任何与安全相关的 API,也不将配置文件放在您的服务器上,那么在安全方面,您已经在使用最严格的可用设置。(假设您还注意如何使用用户输入。)

更一般地,有可能导致 XSS 漏洞的 API 通常在 XSS 情况下被禁用,除非您主动启用它们。例如,如果您站点上的 HTML 页面从另一个站点加载到 flash 文件中,并且该 flash 内容试图对您的页面进行 javascript 调用,则默认情况下这些调用将被阻止,除非您允许它们。同样,如果您站点上的 Flash 内容从另一个站点加载到组件中,则这些组件将无法自省到其父级,除非您调用 API 允许它们这样做。当另一个站点在未经您允许的情况下尝试从您的站点加载 Flash 内容时,也会发生各种限制。

对于所有细节,我强烈推荐这个优秀的概述:

话虽如此,由于您还询问了有关清理用户输入的问题,因此值得注意的是,由于 AS3 没有等效的eval命令,因此永远不会有任何用户输入作为脚本执行的问题。但是,任何与正在加载的内容相关的用户输入都可能是 XSS 攻击的载体。(例如,如果您将用户输入字符串附加到您然后加载的 URL,则用户可能会导致您的站点以他们的恶意 SWF 加载。)但是这种情况与您以良性 3rd 加载的情况没有什么不同-party SWF,后来有人用恶意内容替换它。因此,在 Flash 的上下文中,防止 XSS 攻击与其说是清理用户输入,不如说是确保外部加载的内容没有被授予运行权限,就好像它们在本地受信任一样。

此外,由于如果您想对第 3 方内容(如 Flash 头像、组件甚至横幅广告)做一些有趣的事情,放宽默认限制通常很有用或有必要,因此在这些情况下,网站管理员了解这一点很重要他们允许什么,以及如何防止宽松的限制暴露漏洞。

于 2010-10-08T05:45:44.490 回答