Где сохранить строку подключения, используемую многими приложениями в той же машине?

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

Действительно ли это - хорошая идея? Каковы последствия (безопасность)?

6
задан Jader Dias 27 January 2010 в 17:31
поделиться

4 ответа

Мы храним общие данные в реестре в зашифрованной форме. MODICING MACHILE.CONFIG - очень страшная операция. ;) Одним из недостатков является безопасность реестра. И 64-битные окна могут работать с реестром очень странным. Особенно на WOW Mode.

Также реестр для администраторов - очень старый и хорошо известный друг (резервное копирование, восстановление, импорт, экспорт и т. Д. - не новое для них). Что касается Machine.config, я желаю, чтобы они никогда не хотели прикоснуться к нему.

2
ответ дан 16 December 2019 в 21:39
поделиться

Содержимое, которое является безвредным в одном контексте, может быть опасным в другом контексте. Лучший способ избежать атак инъекций - подготовить содержимое перед передачей его в другой контекст. В данном случае html-текст изменяет свой контекст при передаче в браузер. Сервер не отображает HTML, а браузер. Поэтому не передавайте вредоносный HTML в браузер и маскируйте его перед отправкой.

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

-121--2685045-

Используйте список инициализаторов:

U_U32_F u = { 0xffffffff };

Можно задать другие членов, отличные от первого, с помощью

U_U32_F u = { .f = 42.0 };
-121--1456256-

Можно сохранить их в файле machine.config. Все файлы .config наследуют любые определенные в них последовательности соединений, если они не очищены явным образом.

4
ответ дан 16 December 2019 в 21:39
поделиться

Я согласен с методом machine.config. Однако более простой способ сделать это - создать где-нибудь в вашей файловой системе каталог с зашифрованным файлом xml. Например, используйте Dpapi, а затем просто создайте общий класс, который читает, расшифровывает файл и возвращает строку подключения. Не забудьте иметь запасной метод для получения данных конфигурации, если кто-то удалит этот файл. Как указывалось ранее, файл machine.config может быть перезаписан, то же самое касается этого подхода. Разрешения каталога можно использовать для установки ограничений на чтение и запрета записи всем, кроме разработчиков. Это должно защитить его от "случайной" перезаписи и в то же время гарантировать, что никто не сможет прочитать содержащиеся в нем данные (даже если без ключа это спорный вопрос)

0
ответ дан 16 December 2019 в 21:39
поделиться

Может быть, вы можете просто иметь общий компонент (WCF или иным образом), которые вы ссылаетесь на соединительные строки. Таким образом, вам нужно будет хранить только строку в одном месте.

Я бы не использовал реестр Windows для определения определенных настроек приложения, хотя я знаю много других приложений ...

2
ответ дан 16 December 2019 в 21:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: