Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2011, 08:36   #1
IceExecutioner
Пользователь
 
Аватар для IceExecutioner
 
Регистрация: 04.06.2009
Сообщений: 26
По умолчанию Где SQLConnection хранит имя и пароль?

Не давно просмотрел свою прогу через HexEditor и увидел, что если задать пароль SQLConnection при проектировании формы, то имя пользователя и пароль лежит незашифрованой строкой!!!
Сразу возник вопрос где и как хранятся пароли:
а)Используется окно LoginPromt?
б)присваиваим через переменную SQLConnection1.Params.Add('Password ='+PasswordStr);
IceExecutioner вне форума Ответить с цитированием
Старый 08.03.2011, 09:09   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

А кто Вам обещал, что оно будет лежать в зашифрованном виде?!

Значит так.
Все компоненты (БЕЗ ИСКЛЮЧЕНИЯ) имеют характеристики, которые описаны в DFM файле. (либо посмотрите в файловом редакторе файлик ИмяВашейФормысКоннектион.DFM, либо, банально в Delphi в режиме формы правой кнопкой мышки - "View as text"
и Вы всё увидите там.

Хуже другое. Этот самый DFM файл целиком включается в EXE-шник, его оттуда можно элементарно достать/посмотреть.

Теперь, Вы, наверное, захотите узнать, как с этим бороться?..
Ну, самый лучший способ - вообще не задавать логин/пароль - пусть пользователеь каждый раз вводит. Но, иногда это не только неудобно, но и недопустимо. В этом случае приходится идти на компромисс с требованиями безопасности: пароль всё же хранить в программе, только в зашифрованном виде. В runtime его расшифровывать и присваивать в SQLConnection. Ну, я бы предложил в качестве шифрования использовать алгоритм на основе XOR с длинной строкой, но, в принцие можно использовать любой алгорим шифрации (хоть AES), благо под Дельфи есть бесплатные открытые библиотеки с реализацией криптоалгоритмов. Выбирать Вам...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.03.2011, 10:26   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Ну, я бы предложил в качестве шифрования использовать алгоритм на основе XOR
А я бы предложил настроить программу на Windows Authentification (Если я парвильно написал это слово...), и настроить пользователей в самой винде, если конечно СУБД, избранная автором, это позволяет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.03.2011, 11:22   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
А я бы предложил настроить программу на Windows Authentification (Если я парвильно написал это слово...),
угу. согласен. если СУБД и данная задача это позволяет - то это будет самое оптимальное решение!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.03.2011, 03:16   #5
IceExecutioner
Пользователь
 
Аватар для IceExecutioner
 
Регистрация: 04.06.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
А кто Вам обещал, что оно будет лежать в зашифрованном виде?!

Значит так.
Все компоненты (БЕЗ ИСКЛЮЧЕНИЯ) имеют характеристики, которые описаны в DFM файле. (либо посмотрите в файловом редакторе файлик ИмяВашейФормысКоннектион.DFM, либо, банально в Delphi в режиме формы правой кнопкой мышки - "View as text"
и Вы всё увидите там.

Хуже другое. Этот самый DFM файл целиком включается в EXE-шник, его оттуда можно элементарно достать/посмотреть.

Теперь, Вы, наверное, захотите узнать, как с этим бороться?..
Ну, самый лучший способ - вообще не задавать логин/пароль - пусть пользователеь каждый раз вводит. Но, иногда это не только неудобно, но и недопустимо. В этом случае приходится идти на компромисс с требованиями безопасности: пароль всё же хранить в программе, только в зашифрованном виде. В runtime его расшифровывать и присваивать в SQLConnection. Ну, я бы предложил в качестве шифрования использовать алгоритм на основе XOR с длинной строкой, но, в принцие можно использовать любой алгорим шифрации (хоть AES), благо под Дельфи есть бесплатные открытые библиотеки с реализацией криптоалгоритмов. Выбирать Вам...
Это всё понятно, вот только на вопрос мой ответа не увидел. При подключении к БД вылазит стандартное окно LoginPromt, пользователь вводит туда информацию, а дальше его судьба?
IceExecutioner вне форума Ответить с цитированием
Старый 09.03.2011, 08:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
При подключении к БД вылазит стандартное окно LoginPromt
введённые в LoginPromt логин и пароль передаются в строке соединения с СУБД и, насколько мне известно, нигде не сохраняются.
А что дальше?.. Соединение с БД установлено - можно выполнять запросы...


а Ваш вариант б) из первого поста - это не вопрос, это один из вариантов решения проблемы!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
где браузер хранит полученную информацию? Arassir HTML и CSS 2 28.04.2010 21:39
Где делфи хранит иконку приложений, которую он прилепляет к каждому приложению? TwiX Общие вопросы Delphi 2 03.03.2010 10:23
узнать имя пользователя и пароль windows D1AVOL Общие вопросы Delphi 7 09.01.2010 12:16
Имя и пароль на мыло. motoman PHP 8 13.09.2009 19:31
имя пользователя и пароль к бд Roof PHP 4 26.11.2008 16:51