Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация с помощью mysql, Прошу помощи савторизиацией 
:(
    Опции темы
Nchanged
Дата 9.2.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



СУть программы такова: делаем запрос в мускуль. Сравниваем формы логина и пароля, если совпадает, то показываем приложение. Я недавно начал изучать дельфю, уже написал почти полноценную админку, но существует проблема с авторизацией.

Вопрос: Как сравнить запрашиваемые данные с данными из формы?

Цитата

procedure TForm1.GroupBox1Click(Sender: TObject);
var
  presults: pmysql_res;
  prow: pmysql_row; 
  row: mysql_row;     
  j: Integer;   
  query: String;
  login_form, pass_form: String;

begin
  query:= 'select login, password from users WHERE login LIKE '''+login_form+''', password LIKE '''+pass_form+''''; //Query text
presults:= nil;
try
  mysql_query(@mysqlrec, PChar(query));

//ВОт ступор..

  form2.Show;
  end;
  end;
  finally
      mysql_free_result(presults)

end;

end;
end.

PM MAIL   Вверх
Kesh
Дата 9.2.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



Nchanged Если есть хоть одна запись - подошло...

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


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Nchanged
Дата 9.2.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



ничего страшного.. мне не для инета а для локального юзанья нужно. Шифрование ни к чему.. короче не выходит все равно smile((
PM MAIL   Вверх
Kesh
Дата 9.2.2006, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



Nchanged А как у тебя mysql_query работает?


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
this
Дата 10.2.2006, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 12.9.2005

Репутация: нет
Всего: 1



Если вот здесь
Цитата

mysql_query(@mysqlrec, PChar(query));
в mysqlrec помещается результат запроса, то его и проверяй(сколько возвращает записей)

PM MAIL   Вверх
Nchanged
Дата 10.2.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



Да все.. спасиба, сам разобрался =) Если что, вот исходник

Цитата

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  check_pass : string;
  presults: pmysql_res;
  row: mysql_row;     
  login_, password_: string;
  i : integer;
  begin
    login_ := login_form.text;
    password_:= pass_form.Text;
    check_pass:= 'SELECT login, password from users WHERE login LIKE '''+login_+''' and password = '''+password_+'''';
    presults := nil;
  try
          mysql_query(@mysqlrec, PChar(check_pass)); //Send Query to server
          presults:= mysql_store_result(@mysqlrec); //Store results locally

    if presults^.row_count = 0 then
    begin
            MessageDlg('Неверный пароль', mtWarning, [mbYes], 0)

    end;

    for i:= 1 to presults^.row_count do begin
MessageDlg('Все ок', mtInformation, [mbOK], 0)
    end
    finally
    end;

end;

Добавлено @ 13:37
Kesh
Библиотека DLL и компонент нужен для работы с мускулем
PM MAIL   Вверх
Kesh
Дата 10.2.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



Nchanged Ну как-то это все равно некрасиво... smile
Представь себе, что я пользователь KUSER мне разрешен доступ с Машины COMP я делаю так...
Подсоединяюсь к базе с помощью MySQL QueryBrowser и смотрю табличку с твоими юзерами и их паролями, после чего совершенно спокойно занимаюсь деструктивными действиями от твоего имени... Вот так вот smile(


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Nchanged
Дата 10.2.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



Kesh Ты хочешь сказать, что можно подключиться к любой базе данных не зная пароля к ней?
PM MAIL   Вверх
Kesh
Дата 10.2.2006, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



Nchanged А ты из программы подключаешься через SSL или...? А у тебя в программе не в константах ли объявлены пользователь и пароль?..


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Nchanged
Дата 15.2.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



Kesh. Через саму прогу подлючаюсь к мускулю. (библиотекой). А данные сравниваются с мускульными
PM MAIL   Вверх
Kesh
Дата 15.2.2006, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



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

Вариант 2: я перехватывают сетевой траффик и забираю из пакета твой пароль и пользователя...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
DDX
Дата 15.2.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



1. пароли нужно шифровать!
2. перед выполнением запроса надо отследить, чтобы в логине и пароле не было служебных символов SQL, типа *,%,?,' и пр.!
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
Kesh
Дата 15.2.2006, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



DDX, вот и я про то же...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
DDX
Дата 15.2.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



да, и использовать Like вместо знака равенства (хотя, может, я просто не знаю особенностей мускула), по-моему, верх наивности. давай-ка я введу логин '%admin%' и пароль '*'.
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
Nchanged
Дата 15.2.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



DDX: Давайка дружок.. попробуй ка ввести вместо пароля "*". Ничего не выйдет. Тем более что pass = 'pass' а не LIKE.
На счет символов ты прав. Я эт сделаю. Сам попробовал ввести.. ошибку выдал мне компиллер.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1351 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.