EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Один пользователь - один сеанс в многопользовательском использовании


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) — 1279 downloads
trouble2.png (File type: image/png, Size: 42.34 kilobytes) — 1289 downloads
trouble3.png (File type: image/png, Size: 51.07 kilobytes) — 1292 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



4616