Настройка validationKey на уровне сервера, сайта или приложения

В нашей производственной среде есть три сервера с балансировкой нагрузки. На каждом сервере есть девять сайтов в IIS. На каждом сайте есть от 1 до 15 разных приложений.

Чтобы обеспечить правильное шифрование / дешифрование на всех трех серверах, для соответствующих приложений должны использоваться одни и те же ключи validationKey и decryptionKey. Это может быть установлено на трех уровнях: - Уровень сервера в machine.config - Уровень сайта в web.config - Уровень приложения в web.config

Очевидно, что у настройки этого параметра на каждом уровне есть свои плюсы и минусы, но мне было интересно, может ли кто-нибудь привести конкретные причины, по которым это нужно делать на серверах, сайтах и ​​приложениях.

В разделе machineKey Рекомендации по развертыванию веб-фермы есть рекламное объявление

Если вы хотите изолировать свое приложение от других приложений на том же сервере, поместите файл Web.config для каждого приложения на каждом сервере в ферме.

Является ли validationKey достаточно большим вектором угроз, чтобы оправдать использование другого ключа в ~ 100 различных приложениях на трех серверах? Знаю, знаю. На какой риск я готов пойти? В какой отрасли я работаю? Что я хочу, чтобы кто-то сделал с моими данными? и Т. Д.

Конечно, я подозреваю, что в конце концов мы разместим его на всех трех уровнях, чтобы убедиться, что мы охватим наши базы по всем направлениям при добавлении новых сайтов или приложений. Но я не очень-то жду регрессионного тестирования.

Спасибо, Мэтт


person mattsmith321    schedule 14.09.2011    source источник


Ответы (1)


Частично сводится к предпочтениям, в основном связанным с тем, что люди считают «шумом» в файлах конфигурации, но хранение конфигурации на любом уровне (соответственно, конечно) функционально одинаково.

Например, если у вас есть какой-то параметр, который является общим для всех приложений на одном сервере, он может быть хорошим кандидатом для machine.config, вместо того, чтобы повторять его в каждом web.config, который у вас там может быть.

На мой взгляд, место для ключей проверки / шифрования находится в файлах web.config - вы не хотите разделять их между несколькими (особенно несвязанными с уровня аутентификации) веб-приложениями на одном сервере (очевидная проблема безопасности).

Размещать одни и те же настройки на всех доступных уровнях «на всякий случай» глупо (из-за отсутствия лучшего слова). Не надо. Вы запутаете какого-нибудь обслуживающего персонала в будущем (когда вы уйдете), а статисты и «ненужные вещи» часто являются поводом для злоупотреблений.

person Community    schedule 26.01.2012