|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Недавно пришлось пришлось полазить по интернету для поиска подходящего способа авторизации пользователей в программе. Того, чего хотелось не нашел. Пришлось разрабатывать самому, используя старые наработки и сведя всё в кучу. Вот выкладываю на суд то, что получилось. Выдрано из рабочей программы, так что есть лишние таблицы и формы. Модуль авторизации Прежде чем продолжить работу над работами (фу, тавталогия...) решил сделать модуль авторизации пользователей. Пригодится. Данный модуль имеет 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-ти миллиардное состояние Билла Гейтса? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 16:07 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
JossПопробуйте, как работает и выскажите своё мнение. Вроде работает, не очень хорошо хранение паролей в явном виде, звездочки тоже фигня, желательно шифровать пароли, а лучше вместо них хранить контрольную сумму пароля (и короче и не понять что это такое) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 18:53 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
1. Переключил в режим: 3. авторизация по Login/Password 2. Перезапустился. 3. По форме ввода логина райт клик "Конструктор форм". 4. F11 Ну вот я и в хопре (с) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 19:23 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Заодно: Не надо принудительно распахивать окно Access во весь экран. Доверьте эту миссию пользователю. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 19:26 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Ну что ответить на замечания? Это пример не по взлому защиты, а по организации авторизации пользователей. То, что пароли надо шифровать, я догадываюсь. В следующей версии могу реализовать. Сюда не пихал, чтоб был наглядней принцип и алгоритм авторизации. Кстати, по-этому и никакие защиты не ставил. Не от Shift, ни отключение спецклавишь, ни пароль на VBA. А вообще, каково впечатление? Без замечания на шифрование паролей, открытия панели навигации и Shifta. Про то, что звёздочки можно расшифровать - я знаю. Даже где-то программа валялась - кажется asterics называется. Но вы упустили из вида, что звёздочки - это от подглядывания. Чтоб запустить программу, надо сидеть за клавой. А тот, кто вводит пароль и так его знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 20:35 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Joss... Это пример не по взлому защиты, а по организации авторизации пользователей... dic.academic.ruАвторизация (от английского «Authorization») – понятие, изначально использовавшееся в банковской сфере, в области платежных карт и означает процедуру идентификации лица для предоставления доступа к неким ресурсам или возможностям, имеющим ограниченный доступ... Этот пример не показывает решения основной задачи авторизации пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 20:49 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Joss, принцип присвоил и забыл тут уже не действует, все время нужно будет изменять что-то (а если не менять то зачем тогда вводить) - если эти данные нужны, то нужно брать их наверное из учетно-кадровой программы (в которой есть приказы и пр.-которую ведет сотрудник, отвечающий за верность данных), в общем случае мне кажется что самое лучшее это логин/пароль - причем вводить пароль и определять логин и все. исходя из логина - права и роли - здесь этого нет (или выбор отдела это и есть оно?). кнопку лог в список сотрудников наверное нужно добавить. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 21:16 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
JossА вообще, каково впечатление? Без замечания на шифрование паролей, открытия панели навигации и Shifta. Да ничего так, один из завершающих штрихов перед созданием коробочного варианта, без паролей как-то и приложение не приложение... единственное без инструкции не догадаешься что есть пароли (не зря же сам подробно все расписал)... Логичнее с самой первой формы узнать что ты Администратор и ты можешь зайти без пароля ибо он пока не задан... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 21:32 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Predeclareddic.academic.ruАвторизация (от английского «Authorization») – понятие, изначально использовавшееся в банковской сфере, в области платежных карт и означает процедуру идентификации лица для предоставления доступа к неким ресурсам или возможностям, имеющим ограниченный доступ... Этот пример не показывает решения основной задачи авторизации пользователей. Вы хотите сказать, что этот пример не решает задачу идентификации пользователя? И почему же? Программа может эксплуатироваться в разных условиях Может требоваться идентификация, может - нет. Здесь даны два метода идентификации пользователей. Windows и Login/Password. И давайте разделять задачи. Задачу закрыть доступ злоумышленнику к таблицам и коду и задачу разграничить доступ пользователям к информации средствами программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 23:08 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
aleckoJoss, принцип присвоил и забыл тут уже не действует, все время нужно будет изменять что-то (а если не менять то зачем тогда вводить) - если эти данные нужны, то нужно брать их наверное из учетно-кадровой программы (в которой есть приказы и пр.-которую ведет сотрудник, отвечающий за верность данных), в общем случае мне кажется что самое лучшее это логин/пароль - причем вводить пароль и определять логин и все. исходя из логина - права и роли - здесь этого нет (или выбор отдела это и есть оно?). кнопку лог в список сотрудников наверное нужно добавить. Похоже, Вы не совсем поняли проблему. Есть задача в которой работает несколько человек. Надо протоколировать их работу (некоторую) и разграничить доступ к информации (определённой). Никаких кадровых программ тут не надо. Это хвосты той программы, из которой я выдрал этот кусок. Что бы работать с программой пользователь должен себя идентифицировать. А дальше вступают в действие роли, прописанные в программе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 23:27 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Да. Во первых, я показал как легко обойти авторизацию данного примера . Ну да бог с ним. Во вторых: dic.academic.ru... для предоставления доступа к неким ресурсам или возможностям, имеющим ограниченный доступ... в примере этого нет. Различных наборов меню для пользователей разных ролей нет. Разных наборов записей в формах/отчетах для пользователей разных ролей нет. Нет ничего, за что можно было бы зацепиться глазом. Студентам может сгодится, сдать зачет и забыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 23:33 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
PredeclaredДа. Во первых, я показал как легко обойти авторизацию данного примера . Ну да бог с ним. Во вторых: dic.academic.ru... для предоставления доступа к неким ресурсам или возможностям, имеющим ограниченный доступ... в примере этого нет. Различных наборов меню для пользователей разных ролей нет. Разных наборов записей в формах/отчетах для пользователей разных ролей нет. Нет ничего, за что можно было бы зацепиться глазом. Студентам может сгодится, сдать зачет и забыть. Так Вам что, в качестве примера всю задачу выложить? Тяжеловат он будет. Да и бесполезен. Ведь для каждой задачи надо писать свои меню, свои роли. Здесь же я хотел показать кусочек задачи: вход в программу с идентификацией пользователя. Как задать пароль, как войти, способы идентификации. Если хотите посмотреть как реализовано разделение по ролям, с запретом определённых действий и информации, то добро пожаловать вот сюда Программа для ведения учета автотранспорта и дорожно-строительных механизмов В предпоследнем комменте версия для Access 2000. Вот тут А чуть выше мы с пользователем Roja обсуждали защиту. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 08:42 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Joss, наверное, windows авторизацию можно переделать. На SID пользователя или хотя бы определять рабочую группу\домен пользователя+логин по понятным причинам. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:01 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
vmagВроде работает, не очень хорошо хранение паролей в явном виде, звездочки тоже фигня, желательно шифровать пароли, а лучше вместо них хранить контрольную сумму пароля (и короче и не понять что это такое) Ну, если злоумышленник смог добраться до таблиц, то тут шифруйся - не шифруйся - всё едино. Прописаны пароли только для Login/Password авторизации. А там либо копируешь в свою запись привилегии начальника, либо копируешь в запись начальника свой пароль и заходишь как начальник, под его логином. У себя на работе я везде сделал Windows авторизацию. Её обойти чуть-чуть сложнее. Но не намного. Повторяю: если злоумышленник смог добраться до таблиц, то всё остальное дело времени. Или шифровка не отдельных полей, а целых записей. Только быстродействие резко просядет. И трудоёмкость разработки резко возрастёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:05 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Joss, а я бы если бы перевел пользователей на access 2007+ - ввел бы авторизацию по времеенному паролю, который высылал бы на телефон ;) Пароль действует 8 часов и баста ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:22 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
ОзверинJoss, а я бы если бы перевел пользователей на access 2007+ - ввел бы авторизацию по времеенному паролю, который высылал бы на телефон ;) Пароль действует 8 часов и баста И вообще саму аутентификацию вынес бы за рамки Акса..набросал бы сервис аутентификации или использовал бы сторонний, например - гугл. Вход через гугл учетку - модно\молодежно! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:23 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
ОзверинJoss, наверное, windows авторизацию можно переделать. На SID пользователя или хотя бы определять рабочую группу\домен пользователя+логин по понятным причинам. Честно говоря не вижу причин для переделки. Очень страшно секретные данные в такой базе хранить не станешь. А если база стащена и получен доступ к таблицам, то остальное только дело времени и упорства. Да, и такой вопрос. Если Вы вошли в сеть с другого компьютера (ваш забрали на ремонт) То Ваш SID изменится? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:24 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
JossОзверинJoss, наверное, windows авторизацию можно переделать. На SID пользователя или хотя бы определять рабочую группу\домен пользователя+логин по понятным причинам. Честно говоря не вижу причин для переделки. Очень страшно секретные данные в такой базе хранить не станешь. А если база стащена и получен доступ к таблицам, то остальное только дело времени и упорства. Да, и такой вопрос. Если Вы вошли в сеть с другого компьютера (ваш забрали на ремонт) То Ваш SID изменится? Нет, не изменится. Но если у вас пользователи имеют возможность сменить себе логин или завести нового локального пользователя - то как бе не проблема зайти под кем угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:26 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Joss, а смысл тащить клиента? В нем же нет данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:27 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
ОзверинОзверинJoss, а я бы если бы перевел пользователей на access 2007+ - ввел бы авторизацию по времеенному паролю, который высылал бы на телефон ;) Пароль действует 8 часов и баста И вообще саму аутентификацию вынес бы за рамки Акса..набросал бы сервис аутентификации или использовал бы сторонний, например - гугл. Вход через гугл учетку - модно\молодежно! Вы немного увлеклись. Я хочу получить обычную садовую тачку для перевозки песка и земли, а Вы мне предлагаете автоматическую грузовую платформу с дистанционным управлением и GPS навигацией. Нет у меня задач под такую защиту. Начальство/заказчик просто хочет, чтоб Вася и Коля, которые работают с этой программой не лезли в дела/записи друг друга, И чтобы Витя, которому до этих задач вообще нет дела, не совал бы свой любопытный нос куда не надо. И чтобы оно (начальство) всегда могло определить кто, что натворил и кого за это иметь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:34 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
JossОзверинпропущено... И вообще саму аутентификацию вынес бы за рамки Акса..набросал бы сервис аутентификации или использовал бы сторонний, например - гугл. Вход через гугл учетку - модно\молодежно! Вы немного увлеклись. Я хочу получить обычную садовую тачку для перевозки песка и земли, а Вы мне предлагаете автоматическую грузовую платформу с дистанционным управлением и GPS навигацией. Нет у меня задач под такую защиту. Начальство/заказчик просто хочет, чтоб Вася и Коля, которые работают с этой программой не лезли в дела/записи друг друга, И чтобы Витя, которому до этих задач вообще нет дела, не совал бы свой любопытный нос куда не надо. И чтобы оно (начальство) всегда могло определить кто, что натворил и кого за это иметь. да я понимаю. Но ведь люди должны уставать клепать садовые тележки...А то, что вы заявили, есть в бесплатном доступе - зачем это создавать по сто раз, да еще и на устаревших технологиях? Вон, пусть берут какую нить модную бесплатную CRM и crmят там. Допустим, тот же битрикс24(облако) до 12 человек бесплатен. Или какую нить опенсурс качают да используют. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:36 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Озверин... Но если у вас пользователи имеют возможность сменить себе логин или завести нового локального пользователя - то как бе не проблема зайти под кем угодно. Это Вы о моей программе? Для авторизации Login/Password ? Или о Windows? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:41 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
JossОзверин... Но если у вас пользователи имеют возможность сменить себе логин или завести нового локального пользователя - то как бе не проблема зайти под кем угодно. Это Вы о моей программе? Для авторизации Login/Password ? Или о Windows? я так подумал, что это будущая crm система ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 09:45 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Озверин... да я понимаю. Но ведь люди должны уставать клепать садовые тележки...А то, что вы заявили, есть в бесплатном доступе - зачем это создавать по сто раз, да еще и на устаревших технологиях? Вон, пусть берут какую нить модную бесплатную CRM и crmят там. Допустим, тот же битрикс24(облако) до 12 человек бесплатен. Или какую нить опенсурс качают да используют. Да нет. Про CRM всё понятно. Это вообще не моя разработка, а evgenii3000 . Наткнулся я на неё решая свои задачи. Я и не собираюсь её развивать (может как-нибудь для какого-то конкретного случая). Я на ней хочу просто одну идею отработать. Сделаю - выложу для обсуждения. А сейчас меня интересует только модуль авторизации. Его узкие места. Я сейчас возьму перерыв, почищу всё лишнее, что-бы не смущать людей. Уберу лишние таблицы, формы, запросы. Просто хочу получить законченный модуль, который потом можно будет легко встраивать в другие программы. А потом уже прописывать роли и всё прочее. P.S. Исходный пример был в формате A2007. Я специально перевел модуль в формат A2000, что бы больше людей с ним тут ознакомилось. P.S.S. Но ведь люди должны уставать клепать садовые тележки... (с) Да. Я устал. Но делать космические корабли мне не предлагают. А садовые тележки с моторчиками иногда пользуются спросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 10:01 |
|
Модуль авторизации. Тестирование и обсуждение
|
|||
---|---|---|---|
#18+
Вот новая версия модуля авторизации. Подчистил хвосты. Убрал все дополнительные таблицы и формы. Теперь ничего не должно отвлекать. Что не сделал. Не сделал шифрование пароля. Если надо, то сделаю в следующей версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 12:29 |
|
|
start [/forum/topic.php?fid=45&msg=39736541&tid=1610485]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 159ms |
0 / 0 |