[APACHE DOCUMENTATION]

跨站脚本攻击信息

最后修改时间

简介

本页面包含有关跨站脚本攻击安全问题的信息,它如何影响 Apache 本身,以及在使用 Apache 相关技术时如何正确防范它。

有关该问题的概述,请参阅已发布的 CERT 咨询 CA-2000-02。您还应查看其相关的 了解恶意内容缓解措施 - 针对 Web 开发人员 技术提示文档。CERT 咨询还包含指向 Microsoft 发布的有关该问题的若干文档的链接,如果您受到该问题的影响,也值得查看这些文档。这些文档中包含的信息在此不再重复;本信息假定您已阅读这些文档并熟悉该问题。

我们要强调的是,这不是针对特定软件中特定错误的攻击。这不是 Apache 的问题。这不是 Microsoft 的问题。这不是 Netscape 的问题。事实上,它甚至不是一个可以明确定义为服务器问题或客户端问题的问题。这是一个真正跨平台的问题,是由于一组相互连接的复杂系统中各个组件之间不可预见和意外的交互而产生的。

包括 Apache 在内的各种 Web 服务器产品中存在特定错误,这些错误允许或促成对该安全问题的利用。这些错误不应该存在,需要修复。但重要的是要认识到,这只是整个问题的一小部分。最严重的问题在于所有生成动态内容的特定于站点的代码。我们向您提供这些信息是为了让您了解在 Apache 中发现的与该安全问题相关的错误,但更重要的是,帮助您了解这可能如何影响您使用 Apache 相关技术开发的本地代码以及如何修复它。

服务器或客户端供应商无法发布“灵丹妙药”补丁,以神奇地解决所有使用该产品的 Web 服务器或客户端的此问题。

我们还想指出,重要的是要了解,这不是旧的、众所周知的问题,即如果一个站点允许用户 A 提交由用户 B 查看的内容,则必须对其进行适当的编码。此漏洞是当内容严格由用户 A 提交和查看时发生的。由于在所有情况下正确编码输出的难度,许多站点并不担心对仅显示给在请求中发送数据的用户的编码数据,因为错误地认为这不会构成安全威胁。

这会影响我的网站吗?

这是一个严重的安全性问题,其潜在影响才刚刚开始被理解。但是,重要的是要认识到,此问题不会暴露任何侵入服务器本身的方法。它允许恶意攻击者潜在地控制用户与网站之间的交互。如果您的网站包含完全静态的内容,所有信息都可公开访问,则攻击者从接管此交互中获得的收益非常少。在这种情况下,攻击者可能做到的最严重的事情是更改页面对特定用户的显示方式。

此问题最具潜在危险的站点是用户拥有某种类型的帐户或登录名,并且可以执行具有现实世界影响的操作或访问不应公开的数据的站点。此安全问题对这些站点构成严重威胁;如果可以从用户端接管站点,则无需侵入服务器即可控制站点。

好的,Apache 相关信息在哪里?

就在这里

未来

我们预计这不会是利用此问题的最后方法。将来 Apache 可能会有更多更改,以帮助用户解决此问题,即使 Apache 本身没有发现更多错误。虽然我们确实提供了大多数站点保护自己免受此类攻击所需的必要信息,但仍存在许多与该问题相关的未解决问题。

我们认识到这是一个复杂的问题,并希望随着时间的推移更新这些页面,以更深入地描述问题和修复方法。

为什么叫“跨站脚本攻击”?

此问题不仅仅与脚本有关,而且不一定与跨站点有关。那么为什么叫这个名字呢?它是在人们对这个问题的了解还不够深入的时候就被创造出来的,并且一直沿用至今。相信我,我们还有更重要的事情要做,而不是想出一个更好的名字。<g>。

评论和建议

您可以将有关此页面集的任何评论或建议发送到 marc@apache.org。请注意,我无法回复问题或协助请求,因此,如果您要发送的是这些内容,请不要浪费时间。

更改历史记录

感谢

感谢 CERT 联系 Apache 软件基金会,不仅允许我们参与该问题的评估和发布,而且积极支持我们的参与。我们还要感谢 Microsoft 在处理此问题方面的研究和合作。