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

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

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

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

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

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

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

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

Спасибо Мэтт

1 ответ

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

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

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

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

Другие вопросы по тегам