|
|
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Добрый день. Заказчик хочет надёжности и защищенности. Покритикуйте. Сначала была идея сделать собственную таблицу пользователей с ролями и разграничением на уровне польз. интерфейса. Но в таком случае, внутри программы зашивается пользователь, который всё может. Плохо. Разграничение прав используя ФБ - роли, тогда имея логин пользователь не пойдёт дальше своих прав. А что если две роли у пользователя? В таком случае создаю PUBLIC хранимую процедуру, в которой из таблицы Пользователи-В-Группах достаю доступные группы (чтобы не давать к RDB$USER_PRIVILEGES). Захожу как ЛОГИН+ПАРОЛЬ. Получаю доступные название ролей с описанием (заполняю Combobox). Переконнекчиваюсь уже под выбранной РОЛЬ+ЛОГИН+ПАРОЛЬ. В таблицу Пользователи-В-Группах добавляю/удаляю вместе с GRANT/REVOKE роли, необходимой пользователю. Вот другое дело, а что если у пользователя роль пользователя отчётов (ROLE_REPORT) и дали ещё администратора справочников (ROLE_REF_ADMIN). Получается нужно заходить каждый раз под другой ролью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 09:45:15 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
DFilushin, 1. разные части программы могут иметь разные коннекты каждый со своей ролью, а логин и пароль у них может быть общий. Правда в этом есть недостаток в том что пользователей с одним логином одновременно может подключается столько же сколько ролей (эо не обязательно как реализуете). 2. можно сделать сервер приложений и разграничивать права там 3. подождать выхода FB3 там буду мультироли (а может и группы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 10:18:46 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Симонов Денисподождать выхода FB3 там буду мультироли (а может и группы) а может и не будут ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 11:57:33 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
dimitr, я правильно понимаю что, то в трекере на бету 1 "запланировано" не факт что будет? Вообще если всё это делать, то там действительно работы много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 12:11:22 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, вероятно, но не факт. Что-то может отсекаться со временем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 12:16:14 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Прочитал как "мультитроли". Пора в отпуск. P.S. Дай ссылку на тикет что ли. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 12:25:48 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 12:27:57 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Симонов Денисвот она CORE-1815 Это неинтересно... Я уж думал роли-типа-группы на тройку запланированы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 12:32:59 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
забыл сказать версию ? Работы уже ведутся на 2.5.2. 3 пока на альфе. Работы закончим гораздо раньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 12:39:19 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, ну мультироль - это не группа. А про группы у меня в скобочках и написано может быть. по идее можно в этом случае отдельную сущность не вводить, а сделать как в Оракле Код: sql 1. и все роли назначенные MYUSER будут работать как группы ну или Код: sql 1. если надо ограничить кол-во групп. В любом случае даже мультироли упрощают задачу. Гораздо проще создать новую роль и подключаться с ней передав её привелегии нужных, чем наполнять эти привелегии вручную просматривая все роли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 12:43:21 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
DFilushin, ответы 1 и 2 это не отменяет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 13:52:58 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
DFilushinА что если две роли у пользователя? Не может быть. Зато может быть роль с правами, включающими в себя права двух других. Или скрипт, добавляющий нужному пользователю нужные права. В этом случае роли вообще не нужны. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 13:56:05 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, мне нравится такая идея ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 14:24:25 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Симонов Денис> по идее можно в этом случае отдельную сущность не вводить, а сделать как ИМХО, если делать, то делать как правильно и удобно, а не "как где-то". Хотя вариант со списком групп вполне юзабелен, особенно если при коннекте не придётся указывать саму группу. Симонов Денис> Гораздо проще Да ладно... Во-первых, операция редкая, во-вторых, выполняется не вручную. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 15:17:45 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, у большинства пользователей будет одна группа, какие-то исключения, когда несколько 2 и более. Конечно, подключились, проверили наличие, отключились, подставили группу и подключились вновь. В случае, если две группы: показали выбор из списка. Но это будет редко. Мне главное чтобы случайными средствами не подключались к БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 10:46:37 |
|
||
|
Разграничение прав доступа, в 100-ый раз
|
|||
|---|---|---|---|
|
#18+
DFilushinМне главное чтобы случайными средствами не подключались к БД.Где-то на форуме уже писал об этом. Отвечу для земляка :) В качестве усиления надежности и защищенности предлагаю ПЛЮС к тому, что уже планируется (идею с ролями или без): Скрывать от юзеров их реальный пароль БД (у меня двухфазная авторизация, а можно просто хитро обфусцировать введенный пароль). В результате пользователь, помимо программы (допустим через IBExpert) не сможет зайти. Хороший хакер таки сможет войти в базу под СВОИМ ЗАКОННЫМ логином и паролем, ну что ж… для таких работает исходный уровень защиты! Роли и права, которые топикстартер и так будет раздавать, все равно сделают свою работу. Зато сколько чайников и псевдохакеров, грозящих уложить базу одним запросом сходу отсеятся. Еще одна рекомендация по «надёжности и защищенности»: У меня никто из пользователей не имеет DML прав на таблицы. Эти права есть у процедур. Хакер даже залогинясь в БД не может изменить данные в таблицах, минуя мои процедуры. А процедуры не делают ничего противоречащего логике программы. Ведут журнал своей работы. Хакеру остается крайне тесное поле деятельности. Мне с лихвой хватает описанного уровня защиты, но при желании можно реализовать и следующий, параноидальный этап квеста: Все мои DML-процедуры ведут журнал. Если в момент записи журнала организовать сверку, задано ли перед началом работы программой определенное число в определенном месте, хитро вычисляемое от ID конкретной сессии и, если желаете, дате коннекта :) Если не задано, извините, получите Exception, с записью в журнал попыток взлома системы. Придется хакеру определять алгоритм вычисления/сверки этого числа, можно назвать его хэшем. Исходника сверки в БД естественно нет, дотошному хакеру придется разбираться с BLR, если конечно есть доступ к файлу БД. Но прежде чем упереться в это, хакер сначала должен порадоваться легкой победе (сами знаете как) над триггером on-connect, который норовил не пускать его как некорректно авторизованного. К сожалению для хакера, триггер on-connect делает много полезного, в частности назначает некоторые id, без которых ни одна DML процедура не заработает. Придется разбираться, что делает программа, чтобы коннект был признан корректным. Если дело того стоит, почему бы и не предусмотреть подобные дополнительные степени защиты. Может кто-то возьмет себе на заметку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 10:07:43 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38560890&tid=1563871]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
282ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 589ms |

| 0 / 0 |
