|
|
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Поставили такую задачу - разработать веб-приложение с БД на PostgreSQL (на самом деле неважно, какая СУБД). Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций. Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Также существует таблица прав для каждого пользователя, т.е. пользователи и права - это на уровне приложения, а не на уровне СУБД. Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение - вот это и есть тот вопрос, который мне не понятен. Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 07:06 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон., каша из непонятно чего... нет такого термина "виртуальный пользователь" есть пользователь системы и пользователь субд. все пользователи системы имеют логин/пароль которые хранятся в базе и отвечает за авторизацию пользователя системы серверное приложение, которое обращается к базе с логином/паролём "пользователя базы" (вполне возможно что это может быть и root) серверное приложение разруливает правами кто и что может выполнять в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 08:14 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон., Тут думать ничего не надо. Просто перейти в ветку программистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 08:49 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
вадясерверное приложение разруливает правами кто и что может выполнять в базе. Поясняю. Юзер вводит логин и пароль - например vasya и 12345. Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0 то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД. Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya. Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 08:58 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.вадясерверное приложение разруливает правами кто и что может выполнять в базе. Поясняю. Юзер вводит логин и пароль - например vasya и 12345. Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0 то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД. Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya. Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ? Как руководитель скажет, так и реализовывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:00 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Egoр, ладно, посмеялись и будет. Ваши варианты решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:02 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Egoр, ладно, посмеялись и будет. Ваши варианты решения? Это ты смешной. У прогеров этот вопрос давно решен. Через библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:08 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон., По хорошему тут БД не причем. Т.е. надо сделать нормальную трехзвенную архитектуру. Где доступ и роли для работы с БД будут определяться на сервере приложений. Там же можно будет сделать логгирование действий пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:13 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Petro123У прогеров этот вопрос давно решен. Через библиотеки. Можно будет ссылочку на статью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:15 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Тему в нужном ЯП заведи. И вообще, это вопрос тебя как разраба бд не касается. Это бэк программист веб сервера решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:19 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Petro123, Отвечать один *** я буду. Секьюрнось системы на мне. Надеюсь на понимание. Может всё-таки у кого-нибудь есть ссылка на материал по теме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:23 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение В веб будет обезличенный пользователь без прав DML и в функциях не разруливают обычно. Вне бд разруливают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:24 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Отвечать один *** я буду.дак ты начальник))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:25 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya. Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ?не веб-сервер, а серверное приложение - 2 звено для конкретного пользователя vasya и должно вызвать нужное, то что разрешено этому васи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:37 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Petro123В веб будет обезличенный пользователь без прав DML и в функциях не разруливают обычно. Вне бд разруливают.+100500 mad_nazgulПо хорошему тут БД не причем. Т.е. надо сделать нормальную трехзвенную архитектуру. Где доступ и роли для работы с БД будут определяться на сервере приложений. Там же можно будет сделать логгирование действий пользователя.+100500 тут ужо всё сказано , добавить нечего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:38 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.... Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ? Да, в таком варианте, каждая функция, работающая с user-specific данными должна принимать user_id или его аналог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:42 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Собственно, речь почти наверняка шла о другом. И поскольку это непонятно, то лучше взять самоотвод, чем делать халтуру. В трехзвенной системе управление правами осуществляет сервер приложений, БД в этом вообще не участвует. А задача руководителя, скорее всего, включала в себя разработку схемы данных, удобной для хранения и использования информации о пользователях и их правах доступа. То есть таблица пользователей, организационная структура (отделы, руководители), кадровая информация (должности, период работы), группы доступа, роли, сценарии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:46 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Ответы в специфичном для скл.ру стиле. Как можно минимум инфы по существу. Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER. Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса. Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП. пысы: чудес не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:55 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argoОтветы в специфичном для скл.ру стиле. Как можно минимум инфы по существу. Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER. Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса. Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП. Ну да, я об этом и писал, что придётся таскать ID_USER при каждом вызове функции. Просто я думал, что есть какие-то другие методы, более правильные, а тут начали троллить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:05 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argoОтветы в специфичном для скл.ру стиле. Как можно минимум инфы по существу. Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER. Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса. Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП. пысы: чудес не бывает.это разруливается намного раньше тот же вася видит только то что ему ререшено и это показывает серверное приложение. и все действия , которые разрешены васе обеспечивает серверное приложение. вася просто не может сделать то что ему не разрешено и база здесь только хранилище разрешений конкретному юзеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:09 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Ну да, я об этом и писал, что придётся таскать ID_USER при каждом вызове функции. Просто я думал, что есть какие-то другие методы, более правильные, а тут начали троллить.не надо никуда таскать если пришёл запрос серверному приложению - оно однозначно знает от кого пришёл запрос. уже в самой форме/странице отражены те варианты , которые доступны для данного юзера/роли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:12 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.а тут начали троллить.ты больше разговаривай с мембером с одним сообщением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:14 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
вадяне надо никуда таскать если пришёл запрос серверному приложению - оно однозначно знает от кого пришёл запрос. уже в самой форме/странице отражены те варианты , которые доступны для данного юзера/ролиКак не надо таскать ? А как с БД зачитать набор только разрешенных записей ? Все равно для этого придется этот ID куда-то передать: в запрос, ХП, ф-цию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:40 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argo, Тема про трехзвенку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:57 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Petro123L_argo, Тема про трехзвенку.Вообще-то про апп-сервер, кот. обращается к БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:06 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argoКак не надо таскать ? А как с БД зачитать набор только разрешенных записей ? Все равно для этого придется этот ID куда-то передать: в запрос, ХП, ф-цию. Чушь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:14 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argoапп-сервермарку Сестра!!! Какой именно? Или у вас врач универсал и роды примет и зуб запломбирует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:18 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argoКак не надо таскать ? А как с БД зачитать набор только разрешенных записей ? Все равно для этого придется этот ID куда-то передать: в запрос, ХП, ф-цию. если есть (к примеру) таблица, в которой есть записи доступные определённым юзерам, которые прописаны в определённом поле данной таблице , то передать id юзера в хранимку для использования в where нет проблем. если называется "тасканием" и вызывает проблемы - надо сменить професссию L_argoВообще-то про апп-сервер, кот. обращается к БД.вообще-то именно про трёхзвенку, потому как апп-сервер это часть трёхзвенки. серверное приложение однозначно знает от какого юзера пришло сообщение и может без проблем сопоставить этому сообщению id юзера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:23 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Egoр, ладно, посмеялись и будет. Ваши варианты решения?Для начала. Учетка, под которой будут запросы на сервер отправляться, будет использована для пула сессий, распределяемых между всеми пользовательскими сессиями. Или одна сессия пользователя - одна сессия БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 12:21 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
то передать id юзера в хранимку для использования в where нет проблем. если называется "тасканием" и вызывает проблемы - надо сменить професссиюЭто не вызывает никакой проблемы. "Таскание" это термин ТСа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 12:22 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон., ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 12:26 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.я об этом и писал, что придётся таскать ID_USER при каждом вызове функции. Просто я думал, что есть какие-то другие методы, более правильные В большинстве СУБД тем или иным способом есть контекстные переменные куда имя текущего (для сессии) пользователя можно записать при вызове процедуры аутентификации. А потом использовать во всех функциях, через которые "Веб-сервер общается с БД". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 13:46 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Вы его счас направите на трехзенку с нестандартной ориентацией. А он не видев и не писав веб проектов будет бэк прогеру руки выкручивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 14:17 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.я думал, что есть какие-то другие методы, более правильные, а тут начали троллить. Правильность зависит от контекста и Димон этого не понимает, поэтому его не то что бы троллят, но немного пинают. И это называется - учёба. Если Димон сумеет понять, почему возникают пинки, тогда он научился. Но обычно димоны предпочитают сказать - да ну вас троллей таких... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 14:18 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Поясняю. Юзер вводит логин и пароль - например vasya и 12345. Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0 то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД. во1, "найден" это 1 (true). 0 = false. во2, пароль не шлётся в БД, а БД по логину отдаёт пароль юзера и вы его сравниваете с введённым в3, костыль на костыле костыль погоняет. сожгите свой офис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 17:59 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.вадясерверное приложение разруливает правами кто и что может выполнять в базе. Поясняю. Юзер вводит логин и пароль - например vasya и 12345. Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0 то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД. Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya. Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ? Вы сами себе ответили: "в контексте пользователя vasya". Должен быть некий объект Context (ApplicationContext, ExecutionContext, SecurityContext), что содержит информацию о текущем пользователе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 18:06 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
А вбить в поиске: Context Design Pattern, - уже не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 18:16 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций. В такой ситуации только мозно зад на клочья изорвать, но адекватную безопасность тут не сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 18:37 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
ViPRosЯ вам не Димон., ЭТО ПОЛНЫЙ ТРЕШ, я не позавидую пользователям вот таких систем безопасности. Сидеть и как дятел галочки натыкивать, от оно результат гения мысли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 18:39 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
добавить/удалить/изменять продукцию - у каждого действия своё разрешение ну так то выглядит логично, просто непривычно много всего, что вполне допустимо в большой системе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 19:34 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78добавить/удалить/изменять продукцию - у каждого действия своё разрешение ну так то выглядит логично, просто непривычно много всего, что вполне допустимо в большой системе Угу. Логично. Только для однобитного бизнеса, не совместимого с нашими реалиями. Как на этих смешных галочках можно реализовать следующее: 1. Группа учёта определённой подсистемы может вносить изменения только в последние 3 дня месяца, до этого только ридонили, на уровне безопасности. 2. Выдать права на определённые действия (любые на выбор), на определённый срок определённым людям, при чём любые изменения должны идти с маркером выданных разрешений (кто, когда, и на каком основании разрешил). 3. Возможность делегировать полномочия старших сотрудников младшим сотрудникам на определённые действия, на определённый срок. 4. Одноразовые и N-разовые разрешения. 5. Возможность замещения (ушёл в отпуск, заместители получили права). 6. Определённые действия могут быть совершены только после других действий. + дофига подобных правил, порой совершенно не логичных с точки зрения здорового человека. И это всё именно безопасность, оно должно управляться в одном месте, это подвергается аудиту, строятся отчёты, что когда кому можно было, почему, кто разрешил в такие-то дни. Строятся отчёты по срезам объектов и действиям, выясняется почему такое-то действие было выполнено, на каком основании. Как подобное на этих галочках решать, от вида которых уже становится плохо, понятия не имею. Да и зачем делать это ТАК сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 21:10 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
ну да, типа для ваших пунктов есть простой способ )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 21:26 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78ну да, типа для ваших пунктов есть простой способ )) ABAC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 21:27 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
hVostttip78ну да, типа для ваших пунктов есть простой способ )) ABAC Точнее так, в реализации он конечно сложнее вот этого примитивного трешака с галочками, при чём существенно. Но в результате колоссальный профит. Как по гибкости, по контролю, прозрачности, так и по удобству. Но сделать и прикрутить полноценный ABAC довольно сложно, поэтому и не популярно. Поддержки в виде готовых библиотек, толстых разношёрстных мануалов и прочего привычного стаффа вы не найдёте. Нужно поработать головой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 21:30 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
hVostt, ты блабла то заканчивай кроме галочек там есть правила Порядок таков 1. Умолчание (ничего не надо настраивать) 2. Настройка галочками 3. Настройка правил (код любой сложности в заданном контексте) 4. Клонирование с перенастройкой Права действуют с по Юзер может быть в разных ролях Вход по конкретной роли или группы ролей или все АБАС полный улет фантазии и потеря контекста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 21:52 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Роли можно импорт/экспорт, сливать несколько ролей и т.д. Да воще моя фигня, куда надо туда и разовю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 21:54 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Здравствуйте! Поставили такую задачу - разработать веб-приложение с БД на PostgreSQL (на самом деле неважно, какая СУБД). Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций. Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Также существует таблица прав для каждого пользователя, т.е. пользователи и права - это на уровне приложения, а не на уровне СУБД. Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение - вот это и есть тот вопрос, который мне не понятен. Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ? это классическая реализация для трехзвенки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 22:13 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
ViPRos2. Настройка галочками Ну и много ты настроишь с системе галочками, где больше 1000 различных типов и до сотни тысяч атрибутов? Я конечно понимаю, на паре другой десятке ещё куда ни шло, матрица получается не такая зверская, но ты посчитай, там тупо пронажимать всё как надо, лучше просто убиться об стену. ViPRos3. Настройка правил (код любой сложности в заданном контексте) Код логики где-то там. В одном единственном месте можно ВСЕ правила описывать? Вот где ты галочки свои расставляешь? А то так-то можно и код в обработчиках кнопок называть «правилами безопасности», да? )) ViPRos4. Клонирование с перенастройкой Укрощение галочек? )) ViPRosПрава действуют с по В конкретные дни могут действовать? При конкретных условиях? Периодически? ViPRosАБАС полный улет фантазии и потеря контекста У нас в полный рост. И да, я могу сравнить, так как предыдущую систему делали вот 100% как у тебя, на матрицах галочек, и заипались все, и разрабы и аналитики, и аудиторы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 22:41 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
ViPRosРоли можно импорт/экспорт, сливать несколько ролей и т.д. Да воще моя фигня, куда надо туда и разовю :) А чё-т ещё кроме ролей есть? Роли можно параметризовать? Как пересечь правила, роли, принадлежность пользователя отделам, и его какой-нибудь показатель (например, КПУ)? И по этим пересечениям разрешать безопасность? Опять же, всё в одном месте должно быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 22:43 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
hVostthVosttпропущено... ABAC Точнее так, в реализации он конечно сложнее вот этого примитивного трешака с галочками, при чём существенно. Но в результате колоссальный профит. Как по гибкости, по контролю, прозрачности, так и по удобству. Но сделать и прикрутить полноценный ABAC довольно сложно, поэтому и не популярно. Поддержки в виде готовых библиотек, толстых разношёрстных мануалов и прочего привычного стаффа вы не найдёте. Нужно поработать головой. Gartner Predicts в марте 2014 ляпнул, что к 2020 70% ентерпрайза будет сидеть на ABAC )) ну ну Я думаю, читая вот это , ентерпрайз будет юзать роли ещё лет 300 авторИ это всё именно безопасность, оно должно управляться в одном месте, это подвергается аудиту, строятся отчёты, что когда кому можно было, почему, кто разрешил в такие-то дни. Строятся отчёты по срезам объектов и действиям, выясняется почему такое-то действие было выполнено, на каком основании. так логи есть ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 00:12 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
на самом деле, прописывать разрешения на самих объектах/событиях не сложно, удобно и богоугодно сложно это делать так, как ABAC предлагает )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 00:15 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Зара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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 00:57 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78на самом деле, прописывать разрешения на самих объектах/событиях не сложно, удобно и богоугодно сложно это делать так, как ABAC предлагает )) Да кто спорит, и без АБАКа жизнь есть, и на лошадях люди раньше тоже как-то ездили и жили Еще один момент, вон тот скрин, который випрос приводил с галочками, на АБАКе он реализуется буквально мышкой. Создаёшь кучу клеймов, пишешь одну единственную политику, которая проверяет наличие у пользователя клейма с нужным разрешением для указанного в клейме объекта. Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 11:47 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
hVosttViPRos3. Настройка правил (код любой сложности в заданном контексте) Код логики где-то там. В одном единственном месте можно ВСЕ правила описывать? Вот где ты галочки свои расставляешь? А то так-то можно и код в обработчиках кнопок называть «правилами безопасности», да? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 12:50 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
предлагаю ближе к теме без скринов ГУИ и непонятных галочек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 12:58 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Petro123предлагаю ближе к теме без скринов ГУИ и непонятных галочек пшел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 13:08 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
ViPRos, у тебя короткая память. Народ жалуется на втыкание скринов твоего ПО от 2010 года. Вот выше ты зачем скрин воткнул - непонятно. 21336237 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 13:40 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78во2, пароль не шлётся в БД, а БД по логину отдаёт пароль юзера и вы его сравниваете с введённым Прелестно... "Эй, бд, дай-ка мне пароль админа, я его сравнивать буду!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 13:50 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovtip78во2, пароль не шлётся в БД, а БД по логину отдаёт пароль юзера и вы его сравниваете с введённым Прелестно... "Эй, бд, дай-ка мне пароль админа, я его сравнивать буду!" ну не "вы его сравниваете" конечно, а система. Юзер его вообще не видит есть же даже спец. ф-я http://php.net/manual/ru/function.password-verify.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 14:32 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
БД хэш отдаёт, а не пароль, так как хранит именно хэш. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 15:47 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Ну и сравнение пароля, введенного при логине, с хэшем в БД - это аутентификация. А топик про авторизацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 15:52 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
hVostttip78на самом деле, прописывать разрешения на самих объектах/событиях не сложно, удобно и богоугодно сложно это делать так, как ABAC предлагает )) Да кто спорит, и без АБАКа жизнь есть, и на лошадях люди раньше тоже как-то ездили и жили Еще один момент, вон тот скрин, который випрос приводил с галочками, на АБАКе он реализуется буквально мышкой. Создаёшь кучу клеймов, пишешь одну единственную политику, которая проверяет наличие у пользователя клейма с нужным разрешением для указанного в клейме объекта. Всё. я обратил внимание, что он даже лазит в запросы и правит там колонки... это означает, что он намертво привязан к ORM и без него никак ? а реализовывали вы его через некий роутер, который на каждое действие заполняет некую "Who What When Where Why How" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 04:16 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
skyANAНу и сравнение пароля, введенного при логине, с хэшем в БД - это аутентификация. А топик про авторизацию аутентификация в процессе авторизации то что он для авторизации пароль сравнивает не отменяет авторизацию чел вводит логин + пароль - це авторизация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 04:18 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78чел вводит логин + пароль - це авторизация логин + пароль - це аутентификация. Це авторизация это следующий шаг, когда определяется имеет-ли пользователь или роль право на совершение определенного действия. Авторизация происходит при каждом запрашиваемом действии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 05:35 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78skyANAНу и сравнение пароля, введенного при логине, с хэшем в БД - это аутентификация. А топик про авторизацию аутентификация в процессе авторизации то что он для авторизации пароль сравнивает не отменяет авторизацию чел вводит логин + пароль - це авторизация Короткий ликбез: Аутентификация (от греческого authentikos – реальный, подлинный) - процедура проверки подлинности, например подлинности пользователя путём сравнения введённого им пароля с паролем, сохранённым в базе данных. Авторизация (разрешение, уполномочивание) - предоставление определённому лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 09:32 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
да вы поняли суть. вадяL_argoВообще-то про апп-сервер, кот. обращается к БД.вообще-то именно про трёхзвенку, потому как апп-сервер это часть трёхзвенки. серверное приложение однозначно знает от какого юзера пришло сообщение и может без проблем сопоставить этому сообщению id юзера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 11:57 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Здравствуйте! Поставили такую задачу - разработать веб-приложение с БД на PostgreSQL (на самом деле неважно, какая СУБД). Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций. Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Также существует таблица прав для каждого пользователя, т.е. пользователи и права - это на уровне приложения, а не на уровне СУБД. Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение - вот это и есть тот вопрос, который мне не понятен. Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ? Вроде бы разговор, про то, что используется в вебе. Например: 1. Пользователь вводит логин и пароль, которые передаются серверу приложений. 2. Сервер приложений сравнивает логин и пароль с хранящимися данными в БД 3. Если всё ок, то генерируется токен, который передается клиенту и записывается в таблиыу/хранится в памяти сервера приложений. 4. При каждом дальнейшем обращении, клиент кроме своих данных для запроса, всегда передает свой токен 5. При вызове каждой функции происходит проверка переданного токена на действительность сервером приложений 6. Если токен действующий и всё ок, то происходит запрос-передача данных от сервера 7. Если нет, то отлуп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 13:47 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78я обратил внимание, что он даже лазит в запросы и правит там колонки... это означает, что он намертво привязан к ORM и без него никак ? если и так, то в этом плохого ничего нет. tip78а реализовывали вы его через некий роутер, который на каждое действие заполняет некую "Who What When Where Why How" ? нет, исполняется Policy Information Point, получая значения необходимых атрибуты, для механизма разрешения политик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 17:19 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
hVostttip78я обратил внимание, что он даже лазит в запросы и правит там колонки... это означает, что он намертво привязан к ORM и без него никак ? если и так, то в этом плохого ничего нет. ORM не напишет так, как Maxim Boguk, например а ещё ORM-ы любят пихать 100500 значений в ряд Код: sql 1. а там тормоза растут в геом.прогрессии, начиная уже от 20 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 17:48 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78ORM не напишет так, как Maxim Boguk, например а ещё ORM-ы любят пихать 100500 значений в ряд Код: sql 1. да ладна Код: sql 1. tip78а там тормоза растут в геом.прогрессии, начиная уже от 20 решение всегда есть ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 18:15 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
hVosttда ладна Код: sql 1. explain analyze покажет, что это тоже самое он переводит IN (1,2,3) в такой же массив с ANY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 18:50 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Пепел КлаасаВроде бы разговор, про то, что используется в вебе. Например: вы пытаетесь говорить как бэк программист с ТC'ом Но тут проблема: - он просто "Разработчик БД" и ни разу не программист. - что то изучать сверх того что он знает СУБД - он не хочет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 19:02 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
tip78hVosttда ладна Код: sql 1. explain analyze покажет, что это тоже самое он переводит IN (1,2,3) в такой же массив с ANY а чудес не бывает, однако кешировать сотни разных SQL с IN и всего один с параметрами, разница колоссальная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 19:08 |
|
||
|
|

start [/forum/topic.php?all=1&fid=33&tid=1547236]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 177ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...