Проверка повторного входа

24.06.14

Администрирование - Информационная безопасность

Внешняя обработка для недопущения повторного входа пользователя.

Скачать файлы

Наименование Файл Версия Размер
ПроверкаПовторногоВхода83
.epf 8,78Kb
1
.epf 8,78Kb 1 Скачать

Не секрет, что в БП и ЗУП отсутствует механизм недопущения повторного входа в программу одного и того же пользователя.

Существующие рекомендации в интернете предлагают вносить изменения в общий модуль, но это не наш путь. Гораздо проще, в плане обновлений, сделать это внешней обработкой.

Однако, изменения в конфигурацию всё же придётся внести - для пользователей без административных прав предлагается добавить новую роль "ПроверкаПовторногоВхода" в которой нужно установить разрешения Активные пользователи и т.д. (см. картинку).

Эти изменения нужно внести для всех информационных баз на сервере, т.к. обработка будет запускаться для всех них.

После этого нужно изменить ярлык запуска программы. Необходимо дописать в конец строки "Объект"

/Execute"C:\ПутьКОбработке\ПроверкаПовторногоВхода83.epf"

Должно получится примерно следующее:

"C:\Program Files (x86)\1cv8\common\1cestart.exe" /Execute"C:\Users\ПроверкаПовторногоВхода83.epf"

Каждый раз после обновления платформы ярлык нужно будет восстанавливать, для этого его можно скопировать в отдельную папку, а потом копировать с заменой.

 

Теперь если пользователь запустит второй раз программу (только в режимах толстый и тонкий клиент), программа автоматически завершится, к сожалению, без предупреждения.

Если пользователь запустил единственную копию базы, то никаких форм не открывается, однако в интерфейсе такси в заголовке будет написано "Проверка повторного входа".


Обработка работает и под обычные формы и под управляемые, что удобно, когда например на одном сервере БП 3 и ЗУП 2.5.

Повторый запуск

См. также

AUTO VPN (portable)

Информационная безопасность Платные (руб)

Автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    14403    22    32    

33

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

Информационная безопасность Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    2630    PROSTO-1C    9    

29

Device flow аутентификация, или туда и обратно

Информационная безопасность Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    1619    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Продукты на основе решений 1С уверенной поступью захватывают рынок учётных систем в стране. Широкое распространение программ всегда порождает большой интерес к ним со стороны злоумышленников, а пользователь 1С это одна из дверей в защищённый информационный контур предприятия. Обработка позволяет быстро и комплексно оценить настройки безопасности конкретной базы и возможности пользователя этой базы на сервере. Также можно оценить некоторые аспекты сетевой безопасности предприятия со стороны сервера 1С.

5 стартмани

24.04.2023    5441    14    soulner    7    

29

Двухфакторная аутентификация в 1С через Telegram и Email

Информационная безопасность Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    5970    32    Silenser    12    

23

История одного взлома или проверьте вашу систему на безопасность

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    9250    Tavalik    46    

113
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. slazzy 42 24.06.14 21:57 Сейчас в теме
Решение с запуском внешней обработки очень ненадежно во всех смыслах :) лучше всё таки так не делать. К тому же код обработки, я полагаю не сложен, и его вполне можно внести в дополнительный новый модуль.
2. kapustinag 24.06.14 22:44 Сейчас в теме
Кроме того, если "...автоматически завершится, к сожалению, без предупреждения..." - если предупреждение действительно хочется сделать, то непонятно, почему бы его не сделать - в обработчике При Открытии формы. Во всяком случае, в толстом клиенте это 100% работает.

А с (1) полностью согласен. И конфигурацию пришлось менять, и внешнюю обработку задействовать, и ярлык после обновления заменять... Как-то неуклюже.
4. iodine 88 26.06.14 12:43 Сейчас в теме
(2) kapustinag, если поставить предупреждение, то оно будет висеть, пока пользователь его не закроет, а пока программа запущена - 1 лицензия занята. Может быть можно сделать как-то так, чтобы программа закрывалась, а сообщение оставалось на экране. Или фокус уходил на уже запущенный вариант. Как это сделать я не знаю, поэтому без предупреждений.
По поводу изменений, это минимальные изменения. Добавить новую роль, это не лезть в общие модули, да даже если в них и лезть, то всё равно придётся добавлять роль. У меня в любом случае есть несколько действий после обновления платформы, так что ещё одно по замене ярлыка, которое занимает секунды погоды не делает.
Впрочем, у каждого своё видение как сделать проще - у меня такое.
К тому же есть на сервере несколько баз, то в какую-то можно забыть добавить такую проверку и она работать не будет, а это решение сразу для всех баз. Забыли доавить роль - будет выскакивать сообщение.
3. iodine 88 26.06.14 12:37 Сейчас в теме
(1) slazzy, ненадежно? Однако ж уже работает более полугода.
5. slazzy 42 26.06.14 13:55 Сейчас в теме
(3) да. Во-первых с точки зрения безопасности, нету никакой гарантии того, что какой-нибудь нехороший человек не положит по адресу C:\Users\ПроверкаПовторногоВхода83.epf другую обработку, которая скажем возьмет все ваши данные и отошлет ему на почту, или просто удалит. Да и вообще вы даете пользователям право запускать внешние обработки, что может быть чревато.
Во-вторых нету никакой гарантии, что случайно не удалится эта обработка, а уж тем более с диска C. В-третьих, как и сказал (2) вы всё равно изменили конфигурацию. Я не знаю какой код в Вашей обработке, я не качал. Но лично я тренировки ради сделал подобное решение примерно в 10 строках кода, без добавления лишних объектов. Сделал за пару минут, вероятно это далеко не самое оптимальное решение, но оно работает.
ЗЫ В тонком клиенте пришлось бы вызывать сервер. Либо изменять 2 модуля, например в модуле сеанса проверять возможность запуска и передавать результат через ПараметрыСеанса, а в модуле управляемого приложения уже проверять значение этого параметра сеанса.

	
Процедура ПередНачаломРаботыСистемы(Отказ)
////////
//стандартный код
//////
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
	НомерСеанса = НомерСеансаИнформационнойБазы();
	Для Каждого Соединение из МассивСоединений Цикл
		
		Если Соединение.НомерСеанса = НомерСеанса Тогда
			Продолжить;
		КонецЕсли;
		
		Если Соединение.Пользователь.УникальныйИдентификатор = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор  
			И Соединение.ИмяПриложения = "1CV8" Тогда
			Отказ = Истина;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры
Показать


Если вам так дорога эта обработка, встройте вы её в конфигурацию и вызывайте в модуле управляемого приложения через серверный вызов.
6. iodine 88 30.06.14 10:54 Сейчас в теме
(5) slazzy, спасибо, что тратите ваше время, на обсуждение этой обработки. Постараюсь ответить на ваши замечания.
По поводу безопасности - это всё решается на уровне разграничения прав доступа к файлам. Если у вас нет административного доступа к серверу или этот доступ есть у кого-то ещё, особенно у "нехороших" людей, то этот способ, конечно, не подходит. Тоже самое касается удаления файла. К тому же, если файл обработки вдруг исчезнет, все пользователи будут получать сообщение об ошибке при запуске программы. Некоторые даже скажут программисту об этом ;)
Что касается предоставления пользователям права запуска внешних обработок, то да, это не всегда подходит, но дырой в безопасности я бы тоже это не назвал. Конечно, злоумышленник может с помощью этого что-то сделать с базой, например, массово удалить данные справочников, но это уже очень близко к паранойе, если честно :)
Как я понял, вы предлагаете вносить изменения в модуль обычного и в 2 модуля управляемого приложения (в зависимости от конфигурации). А это ведёт к постоянному контролю изменений в этих модулях при обновлении конфигурации. И это нужно будет сделать для каждой конфигурации на сервере, а если их, например, десяток-другой. Во сколько раз увеличивается время на установку обновлений?
В моём же способе всего лишь добавляется новая роль, которую, кстати, придётся создавать и в вашем варианте, т.к. права получения списка соединений у пользователя тоже нет. При этом контролировать что-то в процессе обновления конфигурации не нужно.
Подводя итог, хочу сказать, что если вы приходящий программист, а есть ещё администратор сервера, то мой способ - не самое лучшее решение. В случае возникновения проблем сложно будет найти и доказать чья вина. К тому же, при почасовой оплате выгоднее подольше обновлять конфигурацию каждый раз.
Ну, а если сервер полностью в вашей власти и вам нужно как можно меньше времени тратить на обновление конфигураций, то мой способ вполне подойдёт. Ещё раз повторю, этот вариант рабочий и используется уже больше полугода.
Оставьте свое сообщение