此页面包含有关跨站点脚本安全问题、它如何影响 Apache 本身以及在使用 Apache 相关技术时如何正确防范它的信息 有关该问题的概述,请参阅针对该问题发布的 CERT 咨询 CA-2000-02。您还应该查看他们的相关 Understanding Malicious Content Mitigation For Web Developers 技术提示文档。 CERT 公告还包含指向 Microsoft 就此问题发布的许多文档的链接,如果此问题对您有影响,这些文档也值得查看。这些文件中包含的信息在此不再赘述;此信息假定您已阅读这些文档并且熟悉该问题 我们想强调的是,这不是针对特定软件中的任何特定错误的攻击。这不是 Apache 的问题。这不是微软的问题。这不是 Netscape 的问题。事实上,它甚至不是可以明确定义为服务器问题或客户端问题的问题。这是一个真正跨平台的问题,是一组相互关联的复杂系统的各个组件之间不可预见和意外交互的结果 包括 Apache 在内的大量 Web 服务器产品中存在特定错误,这些错误允许或有助于利用此安全问题。这些错误不应该存在,需要修复。但重要的是要认识到这只是整个问题的一小部分。最严重的问题是所有生成动态内容的站点特定代码。我们为您提供此信息是为了让您了解在 Apache 中发现的与此安全问题相关的问题,但更重要的是,帮助您了解这可能如何影响您使用 Apache 相关技术开发的本地代码以及您如何可以修好 没有服务器或客户端供应商可以发布的“金弹”补丁可以神奇地解决所有使用该产品的 Web 服务器或客户端的问题 我们还想指出,重要的是要了解这不是一个众所周知的老问题,即如果站点允许用户 A 提交用户 B 可以查看的内容,则必须对其进行正确编码。此漏洞是在用户 A 严格提交和查看内容时出现的。由于在所有情况下都难以正确编码输出,因此许多站点并不担心编码数据只显示给在请求中发送数据的用户由于错误地认为这不会构成安全威胁 这会影响我的网站吗? 这是一个严重的安全问题,其潜在影响才刚刚开始被人们了解。然而,重要的是要认识到这个问题不会暴露任何侵入服务器本身的方法。它允许恶意攻击者潜在地控制用户和网站之间的交互。如果您的网站包含完全静态的内容且所有信息都可访问,则攻击者从接管此交互中获得的收益微乎其微。攻击者在这种情况下可能做的最严重的事情很可能是更改页面对特定用户的显示方式 这造成最大潜在危险的站点是用户拥有某种类型的帐户或登录名并且他们可以执行具有现实世界影响的操作或访问不应可用的数据的站点。此安全问题对此类站点构成严重威胁;如果您可以在用户端获得访问权限,则无需闯入服务器即可控制站点 好的,Apache的相关资料在哪里? Apache 1.3.12,它针对此问题的某些实例提供了一些保护 一个针对 1.3.11 的较旧的 Apache 补丁解决了该版本 Apache 中的已知问题 ? Encoding Examples 页面,描述如何使用常见的 Apache 相关技术(如 Apache 模块、Perl 和 PHP)正确编码输出以防止出现此问题 我们不希望这是关于利用此问题的方法的最终决定。很可能未来 Apache 会有更多的变化来帮助用户处理这个问题,即使 Apache 本身没有发现更多的错误。尽管我们确实为网站提供了大部分必要信息来保护自己免受此类攻击,但仍有许多与此问题相关的未解决问题 我们意识到这是一个复杂的问题,并希望在时间允许的情况下更新这些页面以更深入地描述问题和修复 为什么命名为“跨站点脚本”? 这个问题不仅仅与脚本有关,也不一定与跨站点有关。那为什么叫这个名字呢?它是在问题不太被理解的时候创造出来的,并且一直存在。相信我,我们有比想一个更好的名字更重要的事情要做。 您可以将关于这组页面的任何意见或建议发送至 [email protected]。请注意,我无法回复问题或寻求帮助的请求,因此如果这是您要发送的内容,请省心。