3

我们的生产环境有三台负载均衡的服务器。在每台服务器上,IIS 中有九个站点。在每个站点中,有 1 到 15 个不同的应用程序。

为了在所有三台服务器上保持正确的加密/解密,应为相应的应用程序使用相同的validationKey 和decryptionKey。这可以设置为三个级别: - machine.config 中的服务器级别 - web.config 中的站点级别 - web.config 中的应用级别

在每个级别上设置它显然都有优点和缺点,但我想知道是否有人可以给出一些具体的理由来在服务器、站点和应用程序中这样做。

在 machineKey Web Farm Deployment Considerations部分,有一个简介

如果要将您的应用程序与同一服务器上的其他应用程序隔离开来,请将服务器场中每台服务器上每个应用程序的 Web.config 文件放置在该文件中。

validationKey 是否是一个足够大的威胁向量,足以证明在三台服务器上约 100 个不同的应用程序上使用不同的密钥是合理的?我知道我知道。我愿意承担多大的风险?我在哪个行业?我希望别人用我的数据做什么?等等

当然,我怀疑最终我们会将其放在所有三个级别上,以确保在添加新网站或应用程序时全面覆盖我们的基础。但我并不真正期待回归测试工作。

谢谢,马特

4

1 回答 1

0

部分归结为偏好,主要与个人认为配置文件中的“噪音”有关,但在任一级别(当然,适当地)存储配置在功能上是相同的。

例如,如果您有一些设置在同一服务器上的所有应用程序之间共享,那么它可能是 machine.config 的一个很好的候选者,而不是在您可能拥有的每个 web.config 中重复它。

在我看来,验证/加密密钥的位置在 web.config 文件中 - 您不想在同一服务器上的多个(特别是不相关的,与身份验证级别无关的)网络应用程序之间共享这些(明显的安全问题)。

在所有可用级别放置相同的设置,“只是为了确保”,是愚蠢的(因为缺乏更好的词)。不。将来(当您离开时)您会迷惑一些维护人员,而额外的和“不必要的”通常是滥用的邀请。

于 2012-01-26T05:05:56.663 回答