singlepost

Как сделать авторизационную часть Информационной системы << На главную или назад  

В опщем следующая задача.
Нужно при запуске программы выводить окно в котором можно выбрать пользователя и ввести пароль.
Программа работает с БД.
Где хранить пароли?
Если в базе то к ней нужно подключение. И если зашивать подключение злоумышленик может каким нибудь образом продебажить и найти строку подключения в опщем дайте какие нибудь идеи как сделать нормальный вход в систему

16 ответов в теме “Как сделать авторизационную часть Информационной системы”

  1. 16
    Саша Толстый ответил:

    Эта – имеет и не одно :)

  2. 15
    Марина Середа ответил:

    задачу поставить можно
    но не факт, что она имеет решение :)

  3. 14
    Саша Толстый ответил:

    Хм…
    1) Если сервер в ActiveDirectory то вполне реально выделить группу которой разрешен вход на MsSQL.
    2) Полностью защитить от реверсера нельзя, но максимально затруднить – вполне возможно… тут даже не знаю что подсказать… полиморф + многопоточность + антиотладочные приемы.
    3) Отправлять по сети в незашиврованном виде = самоубийство.
    4) Можно написать сервис на том же серваке где стоит СУБД который будет хранить пароли/авторизовать юзеров и раздавать им права…
    5) Кстате хранимая процедура это идея… только учетка должна разрешать доступ ТОЛЬКО к этой процедуре, и текст ее нужно хорошо проработать чтобы исключить sql-injection.

  4. 13
    Андрей Мазур ответил:

    спасибо большое ВСЕМ)))

  5. 12
    Андрей Мазур ответил:

    а субд MS SQL SERVER 2000

  6. 11
    Иван Горбачев ответил:

    2 Юрий Лисичкин

    Какие заказчики? Какой анализ? Ты еще не авторизировался… :) ) Пока можешь токо почитать хэши паролей. :)

  7. 10
    Виктор Ручкин ответил:

    >> Например узнать точный список заказчиков и объем продаж компании >> конкурента, провести анализ и разработать свой план развития =)

    Угу, берем учетку, все дефолтные права которой – дернуть нашу процедурку аутентификации. Если процедурка успешно пароль сверила, выдаем сессии роль с грантами на доступ к боевым объектам БД. Если не сверила, хоть обузнавайся, СУБД к данным не пустит.

  8. 9
    Юрий Лисичкин ответил:

    >> как можно насрать с правами на чтение?
    Например узнать точный список заказчиков и объем продаж компании конкурента, провести анализ и разработать свой план развития =)

    а ля гер ком а ля гер ( или как то так %) )

  9. 8
    Иван Горбачев ответил:

    как можно насрать с правами на чтение? и что, что он узнает хэш? :)

  10. 7
    Виктор Ручкин ответил:

    Что за база?
    А то если Oracle EE, то подобные задачи там решаются легко и непринужденно.

  11. 6
    Митька Morgan ответил:

    На примере MS SQL Server..
    Напишите хранимую процедуру проверки логина и пароля.
    Создайте пользователя (на сервере) с правом выполнить только эту процедуру (разрешения на чтение информации у него нет). Далее выбрасывайте форму-логин, подключитесь к базе от имени этого (бесправного) пользователя и вызовите хранимую процедуру.Если всё хорошо – программе можно раздать роль приложения..

  12. 5
    Саша Толстый ответил:

    А СУБД какая ?

  13. 4
    Юрий Лисичкин ответил:

    >> Доступ на чтение и на запись – совершенно разные вещи
    Один хрен… "злоумышленнику" может вполне хватить чтения информации из базы данных…
    в конце концов он же не школьник прыщавый, который дальше "поднасрать" не мыслит =)

  14. 3
    Денис Лисов ответил:

    Доступ на чтение и на запись – совершенно разные вещи…

  15. 2
    Андрей Мазур ответил:

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

  16. 1
    Quizful Team ответил:

    пароль хранить например в БД, но не в чистом виде, а в зашиформаном. Например, пропустить сначала через SHA1, чтоб необратимый был, а потом через Base64, чтоб ужасно не выглядел ).
    Далее при логине пользователя делать ту же операцию и сравнивать результат с тем, что хранится в базе.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.