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

24.06.14

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПроверкаПовторногоВхода83
.epf 8,78Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

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

 

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

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


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

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

См. также

Информационная безопасность Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Предлагается внешняя обработка для просмотра данных в формате ASN1. Есть 2 режима: загрузка из бинарного формата и из BASE64. Реализована функция извлечения всех сертификатов, которые можно найти в ASN1-файле. В дополнении к этому продукту предлагается методическая помощь по вопросам, связанным с технической реализацией криптографии и шифрования в 1С.

2400 руб.

29.08.2016    30212    10    1    

11

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

Все еще храните пароли в базе? Тогда мы идем к вам! Безопасное и надежное хранение секретов. JWT авторизация. Удобный интерфейс. Демо конфигурация. Бесплатно.

30.05.2024    7061    kamisov    18    

61

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

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

27.02.2024    8991    PROSTO-1C    10    

40

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

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

1 стартмани

27.10.2023    2669    platonov.e    1    

23

Информационная безопасность Системный администратор Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

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

5 стартмани

24.04.2023    6501    21    soulner    8    

33

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

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

2 стартмани

08.12.2022    7670    53    Silenser    12    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 модуля управляемого приложения (в зависимости от конфигурации). А это ведёт к постоянному контролю изменений в этих модулях при обновлении конфигурации. И это нужно будет сделать для каждой конфигурации на сервере, а если их, например, десяток-другой. Во сколько раз увеличивается время на установку обновлений?
В моём же способе всего лишь добавляется новая роль, которую, кстати, придётся создавать и в вашем варианте, т.к. права получения списка соединений у пользователя тоже нет. При этом контролировать что-то в процессе обновления конфигурации не нужно.
Подводя итог, хочу сказать, что если вы приходящий программист, а есть ещё администратор сервера, то мой способ - не самое лучшее решение. В случае возникновения проблем сложно будет найти и доказать чья вина. К тому же, при почасовой оплате выгоднее подольше обновлять конфигурацию каждый раз.
Ну, а если сервер полностью в вашей власти и вам нужно как можно меньше времени тратить на обновление конфигураций, то мой способ вполне подойдёт. Ещё раз повторю, этот вариант рабочий и используется уже больше полугода.
Оставьте свое сообщение