Здравствуйте! Есть необходимость входа в программу по логин и паролю. Слышал, что отдельная таблица не подходит с целью улучшения безопасности. Как это можно осуществить?
Стандартная трёх уровневая архитектура.
Программа клиент.
Бизнес логика и код на сервере, предоставляющая (Web API, Rest, WebService) для доступа программе.
База данных на сервере.
Схема работы такая:
По умолчанию программа может только вызывать функцию bool TryLogin(string username, string password)
если пользователь залогинелся то в сессии, либо более современный способ в JWT токене хранится информация о пользователе, из которой можно получить его права.
Дале для каждой операции сначала идёт проверка прав, есть ли у данного пользователя права для выполнения данной операции. Если прав нету то выдаётся ошибка.
Таким образом к базе данных имеет доступ только тот пользователь, который авторизован для данной операции, кроме того доступ идёт не к самой базе данных а к API который предоставляет сервис (2-ой уровень).
То есть права на конкретные операции определяются пользователем который сейчас залогинен.
Пользователь никак не может получить таблицу с паролями, так как 1. Этого не позволяет API системы. 2. Любые операции делаются под конкретным пользователем с конкретными правами.
Кроме того пароли на сервере обычно хранят в зашифрованном виде, на случай если кто-то всё-таки умудрился получить доступ к базе, например через exploit или нечестный админ на сервере.
В ручнею нету необходимости всё это создавать с нуля, для этого есть много разных готовых библиотек. В случае с C# есть например Identity.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Вывести элементы с ответа от сервераПриходит ответ от сервера
Есть рабочий алгоритм MergeSortНужно модифицировать его так, чтобы он по совместительству находил и число инверсий в массиве
Пытаюсь убрать верхнюю строку с названием приложения и поменять тему с черной на белую с помощью параметра