Самый безопасный способ использования строк подключения SQL в VB.Net

Я создаю программу в VB.Net, которая активно взаимодействует с двумя большими базами данных MSSQL. Я не знаю тонны vb, и я довольно новичок, но я полагаю, что просто имея строки подключения в коде и выпустив программу, кому-то было бы довольно легко отменить программу и получить информацию о моем подключении? поправьте меня если я ошибаюсь.

Мой вопрос: мне интересно, есть ли более безопасный способ использования строки подключения в моей программе. Должен ли я просто зашифровать свое приложение? Создать модуль или dll?


person Brent Hacker    schedule 19.03.2012    source источник
comment
Пожалуйста, прочтите этот комментарий: stackoverflow.com/questions/9727089/   -  person asawyer    schedule 19.03.2012


Ответы (2)


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

Ответ: aspnet_regiis.exe

Расположение может варьироваться в зависимости от вашей системы и версии .NET, но поиск файлов должен сузить его.

Допустим, у вас есть программа myapp, расположенная в папке c:\dotnetaps\myapp.

Я использую следующую команду для шифрования части «connectionStrings» файла web.config:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp

Подождите секунду: web.config предназначен только для веб-приложений, а не для локальных, верно? aspnet_regiis.exe работает только с web.config, но формат точно такой же, как у app.config. Поэтому все, что вам нужно сделать, это переименовать app.config в web.config, запустить инструмент и переименовать его обратно. Немного неудобно, но ничего, что нельзя было бы автоматизировать с помощью командного файла.

@ Encrypts connectionStrings in app.config
ren C:\dotnetapps\myapp\app.config web.config
path\to\exe\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp
ren web.config app.config

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

person Charles Burns    schedule 19.03.2012
comment
В настоящее время я не использую ASP.Net. Я создаю программу среды Windows в Visual Basic .Net 2010. - person Brent Hacker; 19.03.2012
comment
Насколько мне известно, это не должно иметь значения - просто вопрос получения исполняемого файла, возможно, путем установки IIS Express или аналогичного. Я точно не знаю, какая программа Visual Studio или IIS включает aspnet_regiis.exe, но я бы подумал об этом как о другой установке, как и о любом другом инструменте. Он все еще должен работать для вашей программы. Вам просто нужно поместить строки подключения в app.config. См. следующий пример: dreamincode.net/code/snippet1145.htm - person Charles Burns; 20.03.2012

Вы можете сохранить его в файле ресурсов (MyFile.resx) в виде зашифрованной строки.

person zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz    schedule 19.03.2012