在服务器与站点与应用程序级别设置validationKey

时间:2011-09-14 18:53:29

标签: asp.net web-config machinekey machine.config

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

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

在每个级别设置它显然有利有弊,但我想知道是否有人可以在服务器与网站与应用程序之间提供一些具体的理由。

在machineKey Web Farm Deployment Considerations部分,有一个模糊

  

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

validationKey是一个足够强大的威胁载体,可以证明在三台服务器上的~100个不同应用上使用不同的密钥是正确的吗?我知道我知道。我愿意承担多少风险?我在哪个行业?我希望有人对我的数据做什么?等。

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

谢谢, 马特

1 个答案:

答案 0 :(得分:0)

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

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

在我看来,验证/加密密钥的位置在web.config文件中 - 您不希望在同一服务器上跨多个(特别是不相关的,来自身份验证级别)Web应用程序共享那些(明显的安全问题) )。

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