powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Своя подсистема безопасности для трёхзвенки
73 сообщений из 73, показаны все 3 страниц
Своя подсистема безопасности для трёхзвенки
    #39629579
Здравствуйте!

Поставили такую задачу - разработать веб-приложение с БД на PostgreSQL (на самом деле неважно, какая СУБД).
Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций.

Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Также существует таблица прав для каждого пользователя, т.е. пользователи и права - это на уровне приложения, а не на уровне СУБД.

Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение - вот это и есть тот вопрос, который мне не понятен.
Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ?
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629590
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.,

каша из непонятно чего...
нет такого термина "виртуальный пользователь"
есть пользователь системы и пользователь субд.
все пользователи системы имеют логин/пароль которые хранятся в базе
и отвечает за авторизацию пользователя системы серверное приложение, которое обращается к базе с логином/паролём "пользователя базы" (вполне возможно что это может быть и root)
серверное приложение разруливает правами кто и что может выполнять в базе.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629606
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.,
Тут думать ничего не надо. Просто перейти в ветку программистов.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629609
вадясерверное приложение разруливает правами кто и что может выполнять в базе.
Поясняю. Юзер вводит логин и пароль - например vasya и 12345.
Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0
то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД.
Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya.
Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ?
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629611
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.вадясерверное приложение разруливает правами кто и что может выполнять в базе.
Поясняю. Юзер вводит логин и пароль - например vasya и 12345.
Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0
то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД.
Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya.
Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ?
Как руководитель скажет, так и реализовывать
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629613
Egoр, ладно, посмеялись и будет.
Ваши варианты решения?
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629615
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Egoр, ладно, посмеялись и будет.
Ваши варианты решения?
Это ты смешной.
У прогеров этот вопрос давно решен. Через библиотеки.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629618
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.,

По хорошему тут БД не причем.
Т.е. надо сделать нормальную трехзвенную архитектуру.
Где доступ и роли для работы с БД будут определяться на сервере приложений.
Там же можно будет сделать логгирование действий пользователя.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629619
Petro123У прогеров этот вопрос давно решен. Через библиотеки. Можно будет ссылочку на статью?
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629624
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тему в нужном ЯП заведи.
И вообще, это вопрос тебя как разраба бд не касается.
Это бэк программист веб сервера решает.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629626
Petro123,

Отвечать один *** я буду.
Секьюрнось системы на мне.
Надеюсь на понимание.
Может всё-таки у кого-нибудь есть ссылка на материал по теме?
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629627
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение
В веб будет обезличенный пользователь без прав DML и в функциях не разруливают обычно.
Вне бд разруливают.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629628
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Отвечать один *** я буду.дак ты начальник)))
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629634
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya.
Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ?не веб-сервер, а серверное приложение - 2 звено
для конкретного пользователя vasya и должно вызвать нужное, то что разрешено этому васи
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629638
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123В веб будет обезличенный пользователь без прав DML и в функциях не разруливают обычно.
Вне бд разруливают.+100500
mad_nazgulПо хорошему тут БД не причем.
Т.е. надо сделать нормальную трехзвенную архитектуру.
Где доступ и роли для работы с БД будут определяться на сервере приложений.
Там же можно будет сделать логгирование действий пользователя.+100500

тут ужо всё сказано , добавить нечего
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629642
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон....
Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ?

Да, в таком варианте, каждая функция, работающая с user-specific данными должна принимать user_id или его аналог.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629646
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД.
Собственно, речь почти наверняка шла о другом. И поскольку это непонятно, то лучше взять самоотвод, чем делать халтуру.
В трехзвенной системе управление правами осуществляет сервер приложений, БД в этом вообще не участвует.
А задача руководителя, скорее всего, включала в себя разработку схемы данных, удобной для хранения и использования информации о пользователях и их правах доступа. То есть таблица пользователей, организационная структура (отделы, руководители), кадровая информация (должности, период работы), группы доступа, роли, сценарии.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629653
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответы в специфичном для скл.ру стиле. Как можно минимум инфы по существу.

Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER.
Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса.
Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП.

пысы: чудес не бывает.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629657
L_argoОтветы в специфичном для скл.ру стиле. Как можно минимум инфы по существу.

Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER.
Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса.
Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП.
Ну да, я об этом и писал, что придётся таскать ID_USER при каждом вызове функции. Просто я думал, что есть какие-то другие методы, более правильные, а тут начали троллить.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629658
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoОтветы в специфичном для скл.ру стиле. Как можно минимум инфы по существу.

Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER.
Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса.
Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП.

пысы: чудес не бывает.это разруливается намного раньше
тот же вася видит только то что ему ререшено и это показывает серверное приложение.
и все действия , которые разрешены васе обеспечивает серверное приложение.
вася просто не может сделать то что ему не разрешено и база здесь только хранилище разрешений конкретному юзеру
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629660
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Ну да, я об этом и писал, что придётся таскать ID_USER при каждом вызове функции. Просто я думал, что есть какие-то другие методы, более правильные, а тут начали троллить.не надо никуда таскать
если пришёл запрос серверному приложению - оно однозначно знает от кого пришёл запрос.
уже в самой форме/странице отражены те варианты , которые доступны для данного юзера/роли
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629662
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.а тут начали троллить.ты больше разговаривай с мембером с одним сообщением.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629679
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяне надо никуда таскать
если пришёл запрос серверному приложению - оно однозначно знает от кого пришёл запрос.
уже в самой форме/странице отражены те варианты , которые доступны для данного юзера/ролиКак не надо таскать ? А как с БД зачитать набор только разрешенных записей ?
Все равно для этого придется этот ID куда-то передать: в запрос, ХП, ф-цию.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629697
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo,
Тема про трехзвенку.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629706
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123L_argo,
Тема про трехзвенку.Вообще-то про апп-сервер, кот. обращается к БД.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629711
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoКак не надо таскать ? А как с БД зачитать набор только разрешенных записей ?
Все равно для этого придется этот ID куда-то передать: в запрос, ХП, ф-цию.
Чушь.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629714
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoапп-сервермарку Сестра!!! Какой именно?
Или у вас врач универсал и роды примет и зуб запломбирует?
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629716
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoКак не надо таскать ? А как с БД зачитать набор только разрешенных записей ?
Все равно для этого придется этот ID куда-то передать: в запрос, ХП, ф-цию.
если есть (к примеру) таблица, в которой есть записи доступные определённым юзерам, которые прописаны в определённом поле данной таблице , то передать id юзера в хранимку для использования в where нет проблем.
если называется "тасканием" и вызывает проблемы - надо сменить професссию
L_argoВообще-то про апп-сервер, кот. обращается к БД.вообще-то именно про трёхзвенку, потому как апп-сервер это часть трёхзвенки.
серверное приложение однозначно знает от какого юзера пришло сообщение и может без проблем сопоставить этому сообщению id юзера.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629763
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Egoр, ладно, посмеялись и будет.
Ваши варианты решения?Для начала.
Учетка, под которой будут запросы на сервер отправляться, будет использована для пула сессий,
распределяемых между всеми пользовательскими сессиями.
Или одна сессия пользователя - одна сессия БД?
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629765
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то передать id юзера в хранимку для использования в where нет проблем.
если называется "тасканием" и вызывает проблемы - надо сменить професссиюЭто не вызывает никакой проблемы. "Таскание" это термин ТСа.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629769
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.,
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629845
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.я об этом и писал, что придётся таскать ID_USER при каждом вызове функции. Просто я думал, что есть какие-то другие методы, более правильные
В большинстве СУБД тем или иным способом есть контекстные переменные куда имя текущего (для сессии) пользователя можно записать при вызове процедуры аутентификации. А потом использовать во всех функциях, через которые "Веб-сервер общается с БД".
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629867
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Вы его счас направите на трехзенку с нестандартной ориентацией.
А он не видев и не писав веб проектов будет бэк прогеру руки выкручивать.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39629871
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.я думал, что есть какие-то другие методы, более правильные, а тут начали троллить.
Правильность зависит от контекста и Димон этого не понимает, поэтому его не то что бы троллят, но немного пинают. И это называется - учёба. Если Димон сумеет понять, почему возникают пинки, тогда он научился. Но обычно димоны предпочитают сказать - да ну вас троллей таких...
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630046
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Поясняю. Юзер вводит логин и пароль - например vasya и 12345.
Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0
то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД.
во1, "найден" это 1 (true). 0 = false.
во2, пароль не шлётся в БД, а БД по логину отдаёт пароль юзера и вы его сравниваете с введённым
в3, костыль на костыле костыль погоняет. сожгите свой офис.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630049
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.вадясерверное приложение разруливает правами кто и что может выполнять в базе.
Поясняю. Юзер вводит логин и пароль - например vasya и 12345.
Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0
то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД.
Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya.
Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ?
Вы сами себе ответили: "в контексте пользователя vasya".
Должен быть некий объект Context (ApplicationContext, ExecutionContext, SecurityContext), что содержит информацию о текущем пользователе.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630055
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вбить в поиске: Context Design Pattern, - уже не проблема.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630063
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций.


В такой ситуации только мозно зад на клочья изорвать, но адекватную безопасность тут не сделать.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630065
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosЯ вам не Димон.,



ЭТО ПОЛНЫЙ ТРЕШ, я не позавидую пользователям вот таких систем безопасности. Сидеть и как дятел галочки натыкивать, от оно результат гения мысли
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630083
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавить/удалить/изменять продукцию - у каждого действия своё разрешение
ну так то выглядит логично, просто непривычно много всего, что вполне допустимо в большой системе
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630095
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78добавить/удалить/изменять продукцию - у каждого действия своё разрешение
ну так то выглядит логично, просто непривычно много всего, что вполне допустимо в большой системе

Угу. Логично. Только для однобитного бизнеса, не совместимого с нашими реалиями.

Как на этих смешных галочках можно реализовать следующее:

1. Группа учёта определённой подсистемы может вносить изменения только в последние 3 дня месяца, до этого только ридонили, на уровне безопасности.
2. Выдать права на определённые действия (любые на выбор), на определённый срок определённым людям, при чём любые изменения должны идти с маркером выданных разрешений (кто, когда, и на каком основании разрешил).
3. Возможность делегировать полномочия старших сотрудников младшим сотрудникам на определённые действия, на определённый срок.
4. Одноразовые и N-разовые разрешения.
5. Возможность замещения (ушёл в отпуск, заместители получили права).
6. Определённые действия могут быть совершены только после других действий.

+ дофига подобных правил, порой совершенно не логичных с точки зрения здорового человека.

И это всё именно безопасность, оно должно управляться в одном месте, это подвергается аудиту, строятся отчёты, что когда кому можно было, почему, кто разрешил в такие-то дни. Строятся отчёты по срезам объектов и действиям, выясняется почему такое-то действие было выполнено, на каком основании.

Как подобное на этих галочках решать, от вида которых уже становится плохо, понятия не имею. Да и зачем делать это ТАК сложно.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630100
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, типа для ваших пунктов есть простой способ ))
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630101
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78ну да, типа для ваших пунктов есть простой способ ))

ABAC
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630102
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostttip78ну да, типа для ваших пунктов есть простой способ ))

ABAC

Точнее так, в реализации он конечно сложнее вот этого примитивного трешака с галочками, при чём существенно. Но в результате колоссальный профит. Как по гибкости, по контролю, прозрачности, так и по удобству. Но сделать и прикрутить полноценный ABAC довольно сложно, поэтому и не популярно. Поддержки в виде готовых библиотек, толстых разношёрстных мануалов и прочего привычного стаффа вы не найдёте. Нужно поработать головой.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630104
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

ты блабла то заканчивай

кроме галочек там есть правила

Порядок таков

1. Умолчание (ничего не надо настраивать)
2. Настройка галочками
3. Настройка правил (код любой сложности в заданном контексте)
4. Клонирование с перенастройкой

Права действуют с по
Юзер может быть в разных ролях
Вход по конкретной роли или группы ролей или все

АБАС полный улет фантазии и потеря контекста
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630105
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роли можно импорт/экспорт, сливать несколько ролей и т.д.
Да воще моя фигня, куда надо туда и разовю :)
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630107
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не Димон.Здравствуйте!

Поставили такую задачу - разработать веб-приложение с БД на PostgreSQL (на самом деле неважно, какая СУБД).
Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций.

Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Также существует таблица прав для каждого пользователя, т.е. пользователи и права - это на уровне приложения, а не на уровне СУБД.

Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение - вот это и есть тот вопрос, который мне не понятен.
Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ?

это классическая реализация для трехзвенки
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630113
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos2. Настройка галочками

Ну и много ты настроишь с системе галочками, где больше 1000 различных типов и до сотни тысяч атрибутов? Я конечно понимаю, на паре другой десятке ещё куда ни шло, матрица получается не такая зверская, но ты посчитай, там тупо пронажимать всё как надо, лучше просто убиться об стену.


ViPRos3. Настройка правил (код любой сложности в заданном контексте)

Код логики где-то там. В одном единственном месте можно ВСЕ правила описывать? Вот где ты галочки свои расставляешь?

А то так-то можно и код в обработчиках кнопок называть «правилами безопасности», да? ))


ViPRos4. Клонирование с перенастройкой

Укрощение галочек? ))


ViPRosПрава действуют с по

В конкретные дни могут действовать? При конкретных условиях? Периодически?


ViPRosАБАС полный улет фантазии и потеря контекста

У нас в полный рост. И да, я могу сравнить, так как предыдущую систему делали вот 100% как у тебя, на матрицах галочек, и заипались все, и разрабы и аналитики, и аудиторы.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630114
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosРоли можно импорт/экспорт, сливать несколько ролей и т.д.
Да воще моя фигня, куда надо туда и разовю :)

А чё-т ещё кроме ролей есть? Роли можно параметризовать? Как пересечь правила, роли, принадлежность пользователя отделам, и его какой-нибудь показатель (например, КПУ)? И по этим пересечениям разрешать безопасность? Опять же, всё в одном месте должно быть.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630128
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostthVosttпропущено...


ABAC

Точнее так, в реализации он конечно сложнее вот этого примитивного трешака с галочками, при чём существенно. Но в результате колоссальный профит. Как по гибкости, по контролю, прозрачности, так и по удобству. Но сделать и прикрутить полноценный ABAC довольно сложно, поэтому и не популярно. Поддержки в виде готовых библиотек, толстых разношёрстных мануалов и прочего привычного стаффа вы не найдёте. Нужно поработать головой.
Gartner Predicts в марте 2014 ляпнул, что к 2020 70% ентерпрайза будет сидеть на ABAC )) ну ну
Я думаю, читая вот это , ентерпрайз будет юзать роли ещё лет 300

авторИ это всё именно безопасность, оно должно управляться в одном месте, это подвергается аудиту, строятся отчёты, что когда кому можно было, почему, кто разрешил в такие-то дни. Строятся отчёты по срезам объектов и действиям, выясняется почему такое-то действие было выполнено, на каком основании.
так логи есть ;)
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630129
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на самом деле, прописывать разрешения на самих объектах/событиях не сложно, удобно и богоугодно
сложно это делать так, как ABAC предлагает ))
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630134
Masha12031994
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зара6отoк от 20000 ру6лей в дeнь!!

Вaм нyжен готoвый, уже настрoенный метoд 3ара6oтка?
- Бeз слoжных кyрсов, в кoторых вы не мoжете разо6раться.
- Бeз рyтиннoй рaботы.
- Бeз oбмaна и чтобы дeньги были дoстойные.
Именнo готoвый зара6оток, а не 6еспoлезный курс!
Пoдро6ности на http://blagodelo.info (blagodelo.info)
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630190
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78на самом деле, прописывать разрешения на самих объектах/событиях не сложно, удобно и богоугодно
сложно это делать так, как ABAC предлагает ))

Да кто спорит, и без АБАКа жизнь есть, и на лошадях люди раньше тоже как-то ездили и жили

Еще один момент, вон тот скрин, который випрос приводил с галочками, на АБАКе он реализуется буквально мышкой. Создаёшь кучу клеймов, пишешь одну единственную политику, которая проверяет наличие у пользователя клейма с нужным разрешением для указанного в клейме объекта. Всё.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630201
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRos3. Настройка правил (код любой сложности в заданном контексте)

Код логики где-то там. В одном единственном месте можно ВСЕ правила описывать? Вот где ты галочки свои расставляешь?

А то так-то можно и код в обработчиках кнопок называть «правилами безопасности», да? ))
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630204
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предлагаю ближе к теме без скринов ГУИ и непонятных галочек
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630208
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123предлагаю ближе к теме без скринов ГУИ и непонятных галочек
пшел
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630218
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
у тебя короткая память. Народ жалуется на втыкание скринов твоего ПО от 2010 года.
Вот выше ты зачем скрин воткнул - непонятно.
21336237
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630224
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78во2, пароль не шлётся в БД, а БД по логину отдаёт пароль юзера и вы его сравниваете с введённым
Прелестно... "Эй, бд, дай-ка мне пароль админа, я его сравнивать буду!"
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630236
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovtip78во2, пароль не шлётся в БД, а БД по логину отдаёт пароль юзера и вы его сравниваете с введённым
Прелестно... "Эй, бд, дай-ка мне пароль админа, я его сравнивать буду!"
ну не "вы его сравниваете" конечно, а система. Юзер его вообще не видит
есть же даже спец. ф-я http://php.net/manual/ru/function.password-verify.php
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630262
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД хэш отдаёт, а не пароль, так как хранит именно хэш.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630266
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и сравнение пароля, введенного при логине, с хэшем в БД - это аутентификация.
А топик про авторизацию
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630347
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostttip78на самом деле, прописывать разрешения на самих объектах/событиях не сложно, удобно и богоугодно
сложно это делать так, как ABAC предлагает ))

Да кто спорит, и без АБАКа жизнь есть, и на лошадях люди раньше тоже как-то ездили и жили

Еще один момент, вон тот скрин, который випрос приводил с галочками, на АБАКе он реализуется буквально мышкой. Создаёшь кучу клеймов, пишешь одну единственную политику, которая проверяет наличие у пользователя клейма с нужным разрешением для указанного в клейме объекта. Всё.
я обратил внимание, что он даже лазит в запросы и правит там колонки...
это означает, что он намертво привязан к ORM и без него никак ?
а реализовывали вы его через некий роутер, который на каждое действие заполняет некую "Who What When Where Why How" ?
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630348
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу и сравнение пароля, введенного при логине, с хэшем в БД - это аутентификация.
А топик про авторизацию
аутентификация в процессе авторизации
то что он для авторизации пароль сравнивает не отменяет авторизацию
чел вводит логин + пароль - це авторизация
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630351
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78чел вводит логин + пароль - це авторизация
логин + пароль - це аутентификация. Це авторизация это следующий шаг, когда определяется имеет-ли пользователь или роль право на совершение определенного действия. Авторизация происходит при каждом запрашиваемом действии
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630365
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78skyANAНу и сравнение пароля, введенного при логине, с хэшем в БД - это аутентификация.
А топик про авторизацию
аутентификация в процессе авторизации
то что он для авторизации пароль сравнивает не отменяет авторизацию
чел вводит логин + пароль - це авторизация
Короткий ликбез:

Аутентификация (от греческого authentikos – реальный, подлинный) - процедура проверки подлинности, например подлинности пользователя путём сравнения введённого им пароля с паролем, сохранённым в базе данных.

Авторизация (разрешение, уполномочивание) - предоставление определённому лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630387
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да вы поняли суть.
вадяL_argoВообще-то про апп-сервер, кот. обращается к БД.вообще-то именно про трёхзвенку, потому как апп-сервер это часть трёхзвенки.
серверное приложение однозначно знает от какого юзера пришло сообщение и может без проблем сопоставить этому сообщению id юзера.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630415
Я вам не Димон.Здравствуйте!

Поставили такую задачу - разработать веб-приложение с БД на PostgreSQL (на самом деле неважно, какая СУБД).
Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций.

Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Также существует таблица прав для каждого пользователя, т.е. пользователи и права - это на уровне приложения, а не на уровне СУБД.

Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение - вот это и есть тот вопрос, который мне не понятен.
Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ?
Вроде бы разговор, про то, что используется в вебе.
Например:
1. Пользователь вводит логин и пароль, которые передаются серверу приложений.
2. Сервер приложений сравнивает логин и пароль с хранящимися данными в БД
3. Если всё ок, то генерируется токен, который передается клиенту и записывается в таблиыу/хранится в памяти сервера приложений.
4. При каждом дальнейшем обращении, клиент кроме своих данных для запроса, всегда передает свой токен
5. При вызове каждой функции происходит проверка переданного токена на действительность сервером приложений
6. Если токен действующий и всё ок, то происходит запрос-передача данных от сервера
7. Если нет, то отлуп
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630452
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78я обратил внимание, что он даже лазит в запросы и правит там колонки...
это означает, что он намертво привязан к ORM и без него никак ?

если и так, то в этом плохого ничего нет.


tip78а реализовывали вы его через некий роутер, который на каждое действие заполняет некую "Who What When Where Why How" ?

нет, исполняется Policy Information Point, получая значения необходимых атрибуты, для механизма разрешения политик.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630453
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostttip78я обратил внимание, что он даже лазит в запросы и правит там колонки...
это означает, что он намертво привязан к ORM и без него никак ?

если и так, то в этом плохого ничего нет.
ORM не напишет так, как Maxim Boguk, например
а ещё ORM-ы любят пихать 100500 значений в ряд
Код: sql
1.
WHERE abc IN (1,2,3 ... 100500)

а там тормоза растут в геом.прогрессии, начиная уже от 20
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630458
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78ORM не напишет так, как Maxim Boguk, например
а ещё ORM-ы любят пихать 100500 значений в ряд
Код: sql
1.
WHERE abc IN (1,2,3 ... 100500)



да ладна

Код: sql
1.
WHERE abc = ANY @Param




tip78а там тормоза растут в геом.прогрессии, начиная уже от 20

решение всегда есть )
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630463
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttда ладна

Код: sql
1.
WHERE abc = ANY @Param


explain analyze покажет, что это тоже самое
он переводит IN (1,2,3) в такой же массив с ANY
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630472
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пепел КлаасаВроде бы разговор, про то, что используется в вебе.
Например:
вы пытаетесь говорить как бэк программист с ТC'ом
Но тут проблема:
- он просто "Разработчик БД" и ни разу не программист.
- что то изучать сверх того что он знает СУБД - он не хочет.
...
Рейтинг: 0 / 0
Своя подсистема безопасности для трёхзвенки
    #39630475
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78hVosttда ладна

Код: sql
1.
WHERE abc = ANY @Param



explain analyze покажет, что это тоже самое
он переводит IN (1,2,3) в такой же массив с ANY

а чудес не бывает, однако кешировать сотни разных SQL с IN и всего один с параметрами, разница колоссальная
...
Рейтинг: 0 / 0
73 сообщений из 73, показаны все 3 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Своя подсистема безопасности для трёхзвенки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]