Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7   вперед  Ctrl      все
 Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Недавно пришлось пришлось полазить по интернету для поиска подходящего способа авторизации пользователей в программе.
Того, чего хотелось не нашел. Пришлось разрабатывать самому, используя старые наработки и сведя всё в кучу. Вот выкладываю на суд то, что получилось. Выдрано из рабочей программы, так что есть лишние таблицы и формы.

Модуль авторизации

Прежде чем продолжить работу над работами (фу, тавталогия...) решил сделать модуль авторизации пользователей. Пригодится.

Данный модуль имеет 3 вида авторизации
1. без авторизации
2. Windows авторизация
3. авторизация по Login/Password
Выложен он будет в режиме "Без авторизации"

Переключать режимы авторизации может администратор программы. Для этого надо нажать кнопку "Сервис" (ключ и молоток) Появляется форма "Сервис" с двумя кнопками (пока).
Нажимаем на кнопку "Настройка программы".Программа запросит пароль администратора.

ВНИМАНИЕ! Сейчас для администратора установлен пароль "121212". Для всех остальных пользователей пароль не установлен. Логин администратора всегда "admin". Этот логин зарезервирован за системой. Пользователи не должны его использовать.

Вводим пароль. Откроется форма "Настройки программы". Выбираем нужный режим и закрываем форму.
Тут можно сменить и пароль администратора, нажав кнопку "Смена пароля текущего пользователя". У Вас снова будет запрошен пароль администратора, При правильном вводе будет предложено ввести новый пароль. Так меняется пароль администратора в режиме "Без авторизации"

Пользователей (менеджеров) и логины для них задаёт руководитель. А вот пароль устанавливает сам пользователь.

Для изменения параметров пользователей нажмите на кнопку "Менеджеры" (два профиля). Откроется форма со списком пользователей. Внизу есть кнопки "Добавить", "Изменить", "Удалить".
Выберите пользователя и нажмите на кнопку "Изменить". Откроется соответствующая форма. Перейдите на закладку "Авторизация".
Там находятся два поля "Логин Windows" и "Логин программы"
В поле "Логин Windows" вносится логин под которым пользователь регистрируется в Windows. Предназначен для режима Windows авторизации.
В поле "Логин программы" вносится логин для режима авторизации Login/Password. При создании нового пользователя пароль всегда пустой. Чтобы его изменить, необходимо при заданном режиме "Авторизация по Login/Password" войти в программу по своим логином. В поле "Пароль" ничего не вводить. Затем выбрать режим "Сервис" и "Смена пароля текущего пользователя". Введите новый пароль и подтвердите его. Пробелы вводить нельзя. Регистры в пароле учитывается.
Кроме того там есть кнопка для сброса пароля. Если пользователь забыл свой пароль, то руководитель может его сбросить.

Логины и пароли пользователей хранятся в таблице UserManager. Режим авторизации и пароль администратора хранятся в таблице tbl_SetProgramm.

При "Windows авторизации" программа при запуске просматривает поле LoginWin в таблицы UserManager. В случае совпадения входит в программу под найденным логином.

При авторизация по Login/Password программа запрашивает логин и пароль пользователя.

Попробуйте, как работает и выскажите своё мнение.

Заданные мной логины для программы
Иванов - Ivan
Петров - Peter
Сидоров - Sidor
Александров - Alex
Фёдоров - Fedor
Ефимов - Efim
Сергеев - Serg
Регистр для логина неважен. т.е. Alex=alex=aLeX

P.S. Ещё раз напоминаю, пароль для администратора сейчас установлен 121212.

-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?

К сообщению приложен файл (Authorization_0.1.rar - 144Kb) cкачать
21 ноя 18, 16:07    [21740300]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
vmag
Member

Откуда: MP
Сообщений: 3235
Joss
Попробуйте, как работает и выскажите своё мнение.


Вроде работает, не очень хорошо хранение паролей в явном виде, звездочки тоже фигня, желательно шифровать пароли, а лучше вместо них хранить контрольную сумму пароля (и короче и не понять что это такое)
21 ноя 18, 18:53    [21740495]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 901
1. Переключил в режим: 3. авторизация по Login/Password
2. Перезапустился.
3. По форме ввода логина райт клик "Конструктор форм".
4. F11

Ну вот я и в хопре (с) :)
21 ноя 18, 19:23    [21740523]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 901
Заодно:
Не надо принудительно распахивать окно Access во весь экран.
Доверьте эту миссию пользователю.
21 ноя 18, 19:26    [21740527]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Ну что ответить на замечания?
Это пример не по взлому защиты, а по организации авторизации пользователей. То, что пароли надо шифровать, я догадываюсь. В следующей версии могу реализовать. Сюда не пихал, чтоб был наглядней принцип и алгоритм авторизации.

Кстати, по-этому и никакие защиты не ставил. Не от Shift, ни отключение спецклавишь, ни пароль на VBA.

А вообще, каково впечатление? Без замечания на шифрование паролей, открытия панели навигации и Shifta.

Про то, что звёздочки можно расшифровать - я знаю. Даже где-то программа валялась - кажется asterics называется. Но вы упустили из вида, что звёздочки - это от подглядывания. Чтоб запустить программу, надо сидеть за клавой. А тот, кто вводит пароль и так его знает.
21 ноя 18, 20:35    [21740571]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 901
Joss
... Это пример не по взлому защиты, а по организации авторизации пользователей...


dic.academic.ru
Авторизация (от английского «Authorization») – понятие, изначально использовавшееся в банковской сфере,
в области платежных карт и означает процедуру идентификации лица для предоставления доступа к неким ресурсам или возможностям,
имеющим ограниченный доступ...

Этот пример не показывает решения основной задачи авторизации пользователей.
21 ноя 18, 20:49    [21740581]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 548
Joss, принцип присвоил и забыл тут уже не действует, все время нужно будет изменять что-то (а если не менять то зачем тогда вводить) - если эти данные нужны, то нужно брать их наверное из учетно-кадровой программы (в которой есть приказы и пр.-которую ведет сотрудник, отвечающий за верность данных), в общем случае мне кажется что самое лучшее это логин/пароль - причем вводить пароль и определять логин и все. исходя из логина - права и роли - здесь этого нет (или выбор отдела это и есть оно?). кнопку лог в список сотрудников наверное нужно добавить.
21 ноя 18, 21:16    [21740590]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
vmag
Member

Откуда: MP
Сообщений: 3235
Joss
А вообще, каково впечатление? Без замечания на шифрование паролей, открытия панели навигации и Shifta.


Да ничего так, один из завершающих штрихов перед созданием коробочного варианта, без паролей как-то и приложение не приложение... единственное без инструкции не догадаешься что есть пароли (не зря же сам подробно все расписал)... Логичнее с самой первой формы узнать что ты Администратор и ты можешь зайти без пароля ибо он пока не задан...
21 ноя 18, 21:32    [21740607]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Predeclared
dic.academic.ru
Авторизация (от английского «Authorization») – понятие, изначально использовавшееся в банковской сфере,
в области платежных карт и означает процедуру идентификации лица для предоставления доступа к неким ресурсам или возможностям,
имеющим ограниченный доступ...

Этот пример не показывает решения основной задачи авторизации пользователей.
Вы хотите сказать, что этот пример не решает задачу идентификации пользователя? И почему же? Программа может эксплуатироваться в разных условиях Может требоваться идентификация, может - нет. Здесь даны два метода идентификации пользователей. Windows и Login/Password.

И давайте разделять задачи. Задачу закрыть доступ злоумышленнику к таблицам и коду и задачу разграничить доступ пользователям к информации средствами программы.
21 ноя 18, 23:08    [21740673]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
alecko
Joss, принцип присвоил и забыл тут уже не действует, все время нужно будет изменять что-то (а если не менять то зачем тогда вводить) - если эти данные нужны, то нужно брать их наверное из учетно-кадровой программы (в которой есть приказы и пр.-которую ведет сотрудник, отвечающий за верность данных), в общем случае мне кажется что самое лучшее это логин/пароль - причем вводить пароль и определять логин и все. исходя из логина - права и роли - здесь этого нет (или выбор отдела это и есть оно?). кнопку лог в список сотрудников наверное нужно добавить.


Похоже, Вы не совсем поняли проблему. Есть задача в которой работает несколько человек. Надо протоколировать их работу (некоторую) и разграничить доступ к информации (определённой). Никаких кадровых программ тут не надо. Это хвосты той программы, из которой я выдрал этот кусок. Что бы работать с программой пользователь должен себя идентифицировать. А дальше вступают в действие роли, прописанные в программе.
21 ноя 18, 23:27    [21740687]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 901
Да.

Во первых, я показал как легко обойти авторизацию данного примера.
Ну да бог с ним.
Во вторых:
dic.academic.ru
... для предоставления доступа к неким ресурсам или возможностям,
имеющим ограниченный доступ...

в примере этого нет.
Различных наборов меню для пользователей разных ролей нет.
Разных наборов записей в формах/отчетах для пользователей разных ролей нет.

Нет ничего, за что можно было бы зацепиться глазом.
Студентам может сгодится, сдать зачет и забыть.
21 ноя 18, 23:33    [21740691]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Predeclared
Да.

Во первых, я показал как легко обойти авторизацию данного примера.
Ну да бог с ним.
Во вторых:
dic.academic.ru
... для предоставления доступа к неким ресурсам или возможностям,
имеющим ограниченный доступ...

в примере этого нет.
Различных наборов меню для пользователей разных ролей нет.
Разных наборов записей в формах/отчетах для пользователей разных ролей нет.

Нет ничего, за что можно было бы зацепиться глазом.
Студентам может сгодится, сдать зачет и забыть.
Так Вам что, в качестве примера всю задачу выложить? Тяжеловат он будет. Да и бесполезен.
Ведь для каждой задачи надо писать свои меню, свои роли.
Здесь же я хотел показать кусочек задачи: вход в программу с идентификацией пользователя. Как задать пароль, как войти, способы идентификации.

Если хотите посмотреть как реализовано разделение по ролям, с запретом определённых действий и информации, то добро пожаловать вот сюда Программа для ведения учета автотранспорта и дорожно-строительных механизмов В предпоследнем комменте версия для Access 2000. Вот тут А чуть выше мы с пользователем Roja обсуждали защиту.
22 ноя 18, 08:42    [21740791]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Joss, наверное, windows авторизацию можно переделать. На SID пользователя или хотя бы определять рабочую группу\домен пользователя+логин по понятным причинам.
22 ноя 18, 09:01    [21740805]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
vmag
Вроде работает, не очень хорошо хранение паролей в явном виде, звездочки тоже фигня, желательно шифровать пароли, а лучше вместо них хранить контрольную сумму пароля (и короче и не понять что это такое)
Ну, если злоумышленник смог добраться до таблиц, то тут шифруйся - не шифруйся - всё едино. Прописаны пароли только для Login/Password авторизации. А там либо копируешь в свою запись привилегии начальника, либо копируешь в запись начальника свой пароль и заходишь как начальник, под его логином.

У себя на работе я везде сделал Windows авторизацию. Её обойти чуть-чуть сложнее. Но не намного. Повторяю: если злоумышленник смог добраться до таблиц, то всё остальное дело времени. Или шифровка не отдельных полей, а целых записей. Только быстродействие резко просядет. И трудоёмкость разработки резко возрастёт.
22 ноя 18, 09:05    [21740808]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Joss, а я бы если бы перевел пользователей на access 2007+ - ввел бы авторизацию по времеенному паролю, который высылал бы на телефон ;) Пароль действует 8 часов и баста
22 ноя 18, 09:22    [21740820]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Озверин
Joss, а я бы если бы перевел пользователей на access 2007+ - ввел бы авторизацию по времеенному паролю, который высылал бы на телефон ;) Пароль действует 8 часов и баста


И вообще саму аутентификацию вынес бы за рамки Акса..набросал бы сервис аутентификации или использовал бы сторонний, например - гугл. Вход через гугл учетку - модно\молодежно!
22 ноя 18, 09:23    [21740822]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Озверин
Joss, наверное, windows авторизацию можно переделать. На SID пользователя или хотя бы определять рабочую группу\домен пользователя+логин по понятным причинам.
Честно говоря не вижу причин для переделки. Очень страшно секретные данные в такой базе хранить не станешь. А если база стащена и получен доступ к таблицам, то остальное только дело времени и упорства.

Да, и такой вопрос. Если Вы вошли в сеть с другого компьютера (ваш забрали на ремонт) То Ваш SID изменится?
22 ноя 18, 09:24    [21740823]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Joss
Озверин
Joss, наверное, windows авторизацию можно переделать. На SID пользователя или хотя бы определять рабочую группу\домен пользователя+логин по понятным причинам.
Честно говоря не вижу причин для переделки. Очень страшно секретные данные в такой базе хранить не станешь. А если база стащена и получен доступ к таблицам, то остальное только дело времени и упорства.

Да, и такой вопрос. Если Вы вошли в сеть с другого компьютера (ваш забрали на ремонт) То Ваш SID изменится?


Нет, не изменится. Но если у вас пользователи имеют возможность сменить себе логин или завести нового локального пользователя - то как бе не проблема зайти под кем угодно.
22 ноя 18, 09:26    [21740826]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Joss, а смысл тащить клиента? В нем же нет данных.
22 ноя 18, 09:27    [21740827]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Озверин
Озверин
Joss, а я бы если бы перевел пользователей на access 2007+ - ввел бы авторизацию по времеенному паролю, который высылал бы на телефон ;) Пароль действует 8 часов и баста


И вообще саму аутентификацию вынес бы за рамки Акса..набросал бы сервис аутентификации или использовал бы сторонний, например - гугл. Вход через гугл учетку - модно\молодежно!
Вы немного увлеклись. Я хочу получить обычную садовую тачку для перевозки песка и земли, а Вы мне предлагаете автоматическую грузовую платформу с дистанционным управлением и GPS навигацией. Нет у меня задач под такую защиту.

Начальство/заказчик просто хочет, чтоб Вася и Коля, которые работают с этой программой не лезли в дела/записи друг друга, И чтобы Витя, которому до этих задач вообще нет дела, не совал бы свой любопытный нос куда не надо. И чтобы оно (начальство) всегда могло определить кто, что натворил и кого за это иметь.
22 ноя 18, 09:34    [21740833]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Joss
Озверин
пропущено...


И вообще саму аутентификацию вынес бы за рамки Акса..набросал бы сервис аутентификации или использовал бы сторонний, например - гугл. Вход через гугл учетку - модно\молодежно!
Вы немного увлеклись. Я хочу получить обычную садовую тачку для перевозки песка и земли, а Вы мне предлагаете автоматическую грузовую платформу с дистанционным управлением и GPS навигацией. Нет у меня задач под такую защиту.

Начальство/заказчик просто хочет, чтоб Вася и Коля, которые работают с этой программой не лезли в дела/записи друг друга, И чтобы Витя, которому до этих задач вообще нет дела, не совал бы свой любопытный нос куда не надо. И чтобы оно (начальство) всегда могло определить кто, что натворил и кого за это иметь.


да я понимаю. Но ведь люди должны уставать клепать садовые тележки...А то, что вы заявили, есть в бесплатном доступе - зачем это создавать по сто раз, да еще и на устаревших технологиях? Вон, пусть берут какую нить модную бесплатную CRM и crmят там. Допустим, тот же битрикс24(облако) до 12 человек бесплатен. Или какую нить опенсурс качают да используют.
22 ноя 18, 09:36    [21740835]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Озверин
... Но если у вас пользователи имеют возможность сменить себе логин или завести нового локального пользователя - то как бе не проблема зайти под кем угодно.


Это Вы о моей программе? Для авторизации Login/Password ?
Или о Windows?
22 ноя 18, 09:41    [21740841]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Joss
Озверин
... Но если у вас пользователи имеют возможность сменить себе логин или завести нового локального пользователя - то как бе не проблема зайти под кем угодно.


Это Вы о моей программе? Для авторизации Login/Password ?
Или о Windows?


я так подумал, что это будущая crm система ;)
22 ноя 18, 09:45    [21740845]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Озверин
...
да я понимаю. Но ведь люди должны уставать клепать садовые тележки...А то, что вы заявили, есть в бесплатном доступе - зачем это создавать по сто раз, да еще и на устаревших технологиях? Вон, пусть берут какую нить модную бесплатную CRM и crmят там. Допустим, тот же битрикс24(облако) до 12 человек бесплатен. Или какую нить опенсурс качают да используют.
Да нет. Про CRM всё понятно. Это вообще не моя разработка, а evgenii3000. Наткнулся я на неё решая свои задачи. Я и не собираюсь её развивать (может как-нибудь для какого-то конкретного случая). Я на ней хочу просто одну идею отработать. Сделаю - выложу для обсуждения. А сейчас меня интересует только модуль авторизации. Его узкие места.

Я сейчас возьму перерыв, почищу всё лишнее, что-бы не смущать людей. Уберу лишние таблицы, формы, запросы. Просто хочу получить законченный модуль, который потом можно будет легко встраивать в другие программы. А потом уже прописывать роли и всё прочее.

P.S. Исходный пример был в формате A2007. Я специально перевел модуль в формат A2000, что бы больше людей с ним тут ознакомилось.

P.S.S. Но ведь люди должны уставать клепать садовые тележки...(с) Да. Я устал. Но делать космические корабли мне не предлагают. А садовые тележки с моторчиками иногда пользуются спросом.
22 ноя 18, 10:01    [21740860]     Ответить | Цитировать Сообщить модератору
 Re: Модуль авторизации. Тестирование и обсуждение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4891
Вот новая версия модуля авторизации. Подчистил хвосты. Убрал все дополнительные таблицы и формы. Теперь ничего не должно отвлекать.

Что не сделал.
Не сделал шифрование пароля. Если надо, то сделаю в следующей версии.

К сообщению приложен файл (Authorization_0.2.rar - 118Kb) cкачать
22 ноя 18, 12:29    [21741119]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить