Задай свой вопрос экспертам!
Портал по информационной безопасности SecurityLab.ru предлагает своим читателям уникальную возможность задать вопросы ведущим экспертам по информационной безопасности и получить на них квалифицированные ответы.
Список вопросов
Delphi MySql
Время: 27.04.2011 12:22:01
От кого:
(
useruser)
Евгений Иванов
Категория: Общие вопросы по безопасности
Суть в следущем.
Нужно передать данные из программы написанной на Delphi (удаленное соединение) в Mysql.
Программа передает данные, используя компонент SQLConnection. Пишет и читает из БД.
При передаче имя пользователя и пароль к бд передаются в открытом виде. И весь обмен с бд в открытом виде. Нужно это зашифровать.
Следует учесть, что пользователь тоже может быть "злоумышленником"
, то есть программа должна сама шифровать соединение перед
передачей данных и если оно не зашифровано (ошибка и т.д.) не
устанавливать соединение.
Технология шифрования должна быть бесплатной
если компонент делфи то бесплатный, либо (как предлагали - Берете PuTTY, настраиваете и сохраняете конфигурацию с форвардингом портов, потом при запуске вашей программы выполняете команду
putty.exe -load hosting)
Сервер с БД MySql обычный хостинг, с включенным ssh и разрешенными
удаленными подключениями к бд.
P.S.
Обсуждал это тут
http://www.e1.ru/talk/forum/read.php?f=37&i=192679&t=192679
Заранее спасибо за ответы.
Время: 03.05.2011 12:01:42
От кого:
(
TeckLord)
Валерий Марчук
Категория: Общие вопросы по безопасности
Добрый день!
Шифровать трафик можно с помощью SSL. Подробнее тут:
http://dev.mysql.com/doc/refman/5.0/en/secure-connections.html
Что касается логина и пароля, поскольку пароль использует клиент, к которому у пользователя есть неограниченный доступ, шифрование пароля тут не поможет. Необходимо разграничивать доступ таким пользователям на уровне базы данных, хотя не уверен, подойдет ли это Вам. Уточните, что именно должен уметь делать клиент и как храняться данные в БД.
Время: 03.05.2011 16:59:33
От кого:
(
useruser)
Евгений Иванов
Категория: Общие вопросы по безопасности
Валерий!
Клиент должен запускать программу, программа иметь
полный доступ к таблице в бд (чтение, запись), но
не иметь полный доступ к бд, так как там много
таблиц разных клиентов.
Стандартное подключение из делфи предпологает - полный доступ к бд.
На ум приходит - создать отдельную бд для каждого клиента,
но это слишком "жирно".
При использовании php все легко-но тут удаленый доступ.
Время: 03.05.2011 17:20:04
От кого:
(
TeckLord)
Валерий Марчук
Категория: Общие вопросы по безопасности
Если у каждого клиента своя собственная таблица, то можно разграничить доступ средствами самого mysql.
http://dev.mysql.com/doc/refman/5.5/en/privilege-system.html
Т.е. создается для каждого клиента собственная учетная запись, которой предосталвяется доступ на чтение и запись только к требуемой таблице. Таким образом, даже если пользователь узнает логин/пароль подключения, он сможет изменить только данные в своей таблице.