Asp.net 在服务器、站点和应用程序级别设置validationKey

Asp.net 在服务器、站点和应用程序级别设置validationKey,asp.net,web-config,machinekey,machine.config,Asp.net,Web Config,Machinekey,Machine.config,我们的生产环境有三个负载平衡的服务器。在每台服务器上,IIS中有九个站点。在每个站点中,都有1到15个不同的应用程序 要在所有三台服务器上保持正确的加密/解密,应对相应的应用程序使用相同的validationKey和decryptionKey。这可以设置为三个级别: -machine.config中的服务器级别 -web.config中的站点级别 -web.config中的应用程序级别 显然,在每一个级别上设置它都有利弊,但我想知道是否有人能给出一些具体的理由,在服务器、站点和应用程序上设置它

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

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

显然,在每一个级别上设置它都有利弊,但我想知道是否有人能给出一些具体的理由,在服务器、站点和应用程序上设置它

在machineKey部分,有一个简介

如果要将您的应用程序与上的其他应用程序隔离 在同一台服务器上,将 场中每个服务器上的每个应用程序

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

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

谢谢,
Matt

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

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

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

在所有可用级别上放置相同的设置,“只是为了确保”,是愚蠢的(因为没有更好的词)。不要。将来(当你离开的时候)你会把一些维修人员弄糊涂,额外的东西和“不必要的东西”往往会被滥用