Один пользователь - один сеанс в многопользовательском использовании
Author |
Message |
Written on: 23. 01. 2019 [06:29]
|
dudanov
Sergey Dudanov
Topic creator
registered since: 14.08.2013
Posts: 26
|
Здравствуйте.
В настоящее время OpenSCADA внедрена на предприятии с десятком различных пользователей в числе которых как операторы установок, так и эксплуатационный, дежурный и административный персонал.
Проблема в том, что даже под разными учетными записями пользователи влияют на исполнение проекта друг друга, то есть человек хочет посмотреть определенную страницу, а другой производит переход на другую, так переход происходит у обоих пользователей, что конечно же неприемлимо. Получается, что пользователи подключаются к одному и тому же сеансу исполнения.
Вопрос: как можно сделать, чтобы на каждого пользователя создавался принудительно один сеанс и привязывался именно к пользователю. Естественно, оставался бы таймер самоуничтожения сессии, а сессия создавалась по первому входу через любой из доступных пользовательских интерфейсов.
Прошу помощи у более опытных пользователей системы и посоветовать способ решения данной проблемы.
Спасибо.
# rm -rf /bin/laden
|
Written on: 23. 01. 2019 [08:23]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"dudanov" wrote:
Вопрос: как можно сделать, чтобы на каждого пользователя создавался принудительно один сеанс и привязывался именно к пользователю. Естественно, оставался бы таймер самоуничтожения сессии, а сессия создавалась по первому входу через любой из доступных пользовательских интерфейсов.
Осознанно использовать сервер визуализации, если UI.Vision, и не использовать root доступа в случае с UI.WebVision, тогда и возможности подключаться к чужим сеансам не будет!
Learn, learn and learn better than work, work and work.
|
Written on: 23. 01. 2019 [09:03]
|
dudanov
Sergey Dudanov
Topic creator
registered since: 14.08.2013
Posts: 26
|
"roman" wrote:
Осознанно использовать сервер визуализации, если UI.Vision, и не использовать root доступа в случае с UI.WebVision, тогда и возможности подключаться к чужим сеансам не будет!
Спасибо, Роман. Именно так и делаю. root вообще не используется. Все пользователи данного проекта принадлежат группам users и dispatchers. И доступ к проекту разрешен группе dispatchers. Но судя по информации о сессии исполнения система принимает запрос от другого пользователя, не обладающего правами root. Скрины поилагаю.
UPD: может проблема в имени пользователя, состоящего из цифр?
[This article was edited 1 times, at last 23.01.2019 at 09:09.]
# rm -rf /bin/laden
Attachment
trouble.png (File type: image/png, Size: 41.57 kilobytes) — 1246 downloads
trouble2.png (File type: image/png, Size: 42.34 kilobytes) — 1260 downloads
trouble3.png (File type: image/png, Size: 51.07 kilobytes) — 1258 downloads
|
Written on: 23. 01. 2019 [10:54]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"dudanov" wrote:
"roman" wrote:
Осознанно использовать сервер визуализации, если UI.Vision, и не использовать root доступа в случае с UI.WebVision, тогда и возможности подключаться к чужим сеансам не будет!
Все пользователи данного проекта принадлежат группам users и dispatchers. И доступ к проекту разрешен группе dispatchers. Но судя по информации о сессии исполнения система принимает запрос от другого пользователя, не обладающего правами root. Скрины поилагаю.
Что правильно, поскольку они все группе dispatchers, и это не связано с первичным вопросом, ответ на который — не нужно их подключать к одному сеансу!
Learn, learn and learn better than work, work and work.
|
Written on: 23. 01. 2019 [11:24]
|
dudanov
Sergey Dudanov
Topic creator
registered since: 14.08.2013
Posts: 26
|
"roman" wrote:
Что правильно, поскольку они все группе dispatchers, и это не связано с первичным вопросом, ответ на который — не нужно их подключать к одному сеансу!
Роман, каким образом я, как администратор, вообще могу подключать их к одному сеансу? Разве это не задача системы выбирать открытый пользователем сеанс или создавать новый если нет такового открытого? Пользователи работают через UI.WebVision и сами выбирают доступный проект либо открытую сессию этого проекта. Каким образом они могут самостоятельно подключиться к открытой чужой сессии?
UPD: сейчас попробовал создать от имени разных пользователей сеансы выполнения. И под тестовым пользователем спокойно подключился ко всем чужим сессиям по сессионным ссылкам ses_. То есть на уровне системы (по крайней мере модуле UI.WebVision), не отрабатывает защита сеанса от вторжения другого, пусть авторизованного пользователя.
UPD2: Поэтому запросто возможна типичная ошибка в следующей ситуации: пользователь логинится по ссылке проекта, создается сессия, допустим 1-я и пользователь, для удобности, создает в браузере закладку, в которой ссылка на эту сессию и перейдя по ссылке в процессе работы (когда авторизовался в системе) может нажать на кнопку в закладке и перейти совсем уже в чужую открытую сессию другого пользователя! В этом то и проблема. Неплохо бы реализовать проверку URL сессии и либо содавать новую для текущего пользователя, либо открывать его родную уже открытую, а не лезть "в чужой огород".
[This article was edited 4 times, at last 23.01.2019 at 12:00.]
# rm -rf /bin/laden
|
Written on: 23. 01. 2019 [12:04]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"dudanov" wrote:
"roman" wrote:
Что правильно, поскольку они все группе dispatchers, и это не связано с первичным вопросом, ответ на который — не нужно их подключать к одному сеансу!
Роман, каким образом я, как администратор, вообще могу подключать их к одному сеансу? Разве это не задача системы выбирать открытый пользователем сеанс или создавать новый если нет такового открытого? Пользователи работают через UI.WebVision и сами выбирают доступный проект либо открытую сессию этого проекта. Каким образом они могут самостоятельно подключиться к открытой чужой сессии?
У меня не могут, если не "root"!
"dudanov" wrote:
UPD: сейчас попробовал создать от имени разных пользователей сеансы выполнения. И под тестовым пользователем спокойно подключился ко всем чужим сессиям по сессионным ссылкам ses_. То есть на уровне системы (по крайней мере модуле UI.WebVision), не отрабатывает защита сеанса от вторжения другого, пусть авторизованного пользователя.
Так могут, но это и не уязвимость, поскольку права у них одинаковы, а только он так подключится то действия в протоколы будут писаться от его имени, т.е. по факту он сам себе злобный Буратино!
Опять-же, решение — не подключаться к сеансу!
"dudanov" wrote:
UPD2: Поэтому запросто возможна типичная ошибка в следующей ситуации: пользователь логинится по ссылке проекта, создается сессия, допустим 1-я и пользователь, для удобности, создает в браузере закладку, в которой ссылка на эту сессию и перейдя по ссылке в процессе работы (когда авторизовался в системе) может нажать на кнопку в закладке и перейти совсем уже в чужую открытую сессию другого пользователя!
Создавайте ссылки с префиксом "prj_", просто.
"dudanov" wrote:
В этом то и проблема. Неплохо бы реализовать проверку URL сессии и либо содавать новую для текущего пользователя, либо открывать его родную уже открытую, а не лезть "в чужой огород".
Там есть все проверки!
Learn, learn and learn better than work, work and work.
|
Written on: 23. 01. 2019 [12:18]
|
dudanov
Sergey Dudanov
Topic creator
registered since: 14.08.2013
Posts: 26
|
Никто не говорит о уязвимостях системы... Понимаю, что в лог будут писаться все действия. Здесь больше проблема использования. То есть могут быть ситуации, когда будут проблемы. Одну из возможных я озвучил.
# rm -rf /bin/laden
|
Written on: 23. 01. 2019 [12:23]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"dudanov" wrote:
Никто не говорит о уязвимостях системы... Понимаю, что в лог будут писаться все действия. Здесь больше проблема использования. То есть могут быть ситуации, когда будут проблемы. Одну из возможных я озвучил.
Я Вам озвучил ответ и у меня нет с этим проблем!
P.S. Если Вы хотите каких-то действий от разработчиков по решению "Ваших" проблем, то Вы знаете что делать, поскольку я Вам уже писал.
Learn, learn and learn better than work, work and work.
|
Written on: 23. 01. 2019 [12:25]
|
dudanov
Sergey Dudanov
Topic creator
registered since: 14.08.2013
Posts: 26
|
"roman" wrote:
"dudanov" wrote:
Никто не говорит о уязвимостях системы... Понимаю, что в лог будут писаться все действия. Здесь больше проблема использования. То есть могут быть ситуации, когда будут проблемы. Одну из возможных я озвучил.
Я Вам озвучил ответ и у меня нет с этим проблем!
P.S. Если Вы хотите каких-то действий от разработчиков по решению "Ваших" проблем, то Вы знаете что делать, поскольку я Вам уже писал.
Хорошо, спасибо, Роман. Поборем проблему с закладками. :)
# rm -rf /bin/laden
|
|
|