2009-11-02 3 views
1

Мне было поручено обеспечить соединение строки в классическом приложении ASP, и мне интересно, нужно ли мне просто укусить пулю и обновить все приложение до ASP.NET, или если есть простое исправление.Должно ли соединение ODBC использовать пароли открытого текста?

В настоящее время приложение подключается к ODBC источника данных с помощью строки подключения, как это:

DSN=Mydb;uid=myuser;pwd=mypassword;DATABASE=mydb 

Мой вопрос, можно ли шифровать этот пароль как-то, или удалить ODBC из уравнения?

ответ

2

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

+0

+1, если драйвер базы данных поддерживает интегрированную защиту (что наиболее важно). – devstuff

+0

Запуск веб-приложения в качестве пользователя домена создает ряд других проблем: убедитесь, что этот пользователь имеет те же привилегии, что и идентификатор приложения ASP по умолчанию; поддержание жизненного цикла пользователя (например, изменение пароля в IIS по истечении срока его действия; создание отдельной учетной записи домена для подключения к БД, поскольку использование обычной учетной записи пользователя может быть не очень хорошей идеей); теперь позволяет любому другому веб-приложению, работающему под этим сайтом, подключаться к серверу базы данных; и т. д. В зависимости от вашей среды и требований, это не может быть большой проблемой, но вы, по крайней мере, должны знать об этих проблемах. –

1

Вместо ODBC вы можете рассмотреть OLEDB. Обычно я рекомендую последнее (с возможными исключениями, например, когда нужно/как косвенность, предоставляемая конфигурацией ODBC, которая позволяет переключать dbs без изменения конфигурации приложения или исходного кода).

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

Однако, поскольку вы пытаетесь не указывать пароль в строке соединения, возможно, не удастся использовать OLEDB, поскольку MySQL documentation на этом типе подключения, похоже, не позволяет альтернативных аутентификаций, но учетная запись /пароль.

Возможно, вам понадобится/как возможность вызова ODBC с интегрированной безопасностью и иметь учетную запись/пароль MySQL, хранящуюся на уровне конфигурации ODBC для этого источника. Таким образом, пароль не ссылается на уровень приложения (но все еще находится в конфигурации ODBC ...).
С ODBC ключ строки соединения = значение парой для использования встроенной системы безопасности является

 
"Integrated Security=SSPI" 
which I believe is equivalent to 
"Trusted_Connection=yes" 

Полезным справочным для соединения строк метко назвал www.connectionstrings.com

0

Другой альтернативой является для шифрования строки подключения с помощью какого-то алгоритма (или используя какой-то компонент, такой как RSADLL), а затем расшифруйте строку соединения в приложении.

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

Смежные вопросы