НеБезопасный прикладной программный интерфейс сервера

Публикация № 1615125 02.03.22

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

Публикация размещена исключительно в образовательных целях и подходит только для платформы версии 8.3.16.1148.
Использует недокументированные средства доступа к базе данных 1С. Прямое обращение к СУБД нарушает лицензионное соглашение,
может изменить поведение платформы, привести к разрушению базы данных, скомпрометировать данные,
а также привести к отказу в официальной поддержке Фирмы 1С.
Есть такой стандарт «Безопасность прикладного программного интерфейса сервера». Многие его читали. Кто-то даже понимает то, что там написано. Но, как показывает практика, его мало кто соблюдает. Чем грозит отступление от этого стандарта? В чем опасность общих модулей с признаком «Вызов сервера»? На эти вопросы на митапе «Безопасность в 1С» ответил разработчик рекомендательных систем Владимир Бондаревский.

Расскажу о том, с чем на практике столкнулся буквально недавно – о том, насколько может быть небезопасным прикладной программный интерфейс сервера в 1С.

Обычно разработчики 1С не думают об уязвимостях – когда ты варишься только в мире 1С, не выходишь за его рамки, кажется, что все и так хорошо. Но если чуть-чуть расшириться и заглянуть снаружи, немного с другим опытом, то можно увидеть много интересных дыр, которые сразу не заметны.

В ходе доклада:

  • посмотрим, что нам советуют стандарты от 1С;

  • порассуждаем, от кого мы защищаемся и как защищаемся;

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

 

Стандарты 1С

 

Я выбрал два основных стандарта на тему безопасности.

Первый стандарт касается ограничения на установку признака «Вызов сервера». Я вынес из него пару тезисов.

  • Во-первых, не нужно ставить флаг «Вызов сервера» всем серверным общим модулям.

  • И во-вторых, в модулях с флагом «Вызов сервера» должен быть только тот код, который действительно нужно вызывать с клиента, и этот код должен делать только то, что заложено разработчиком, чтобы не вызывать никаких побочных эффектов.

Казалось бы, здесь все достаточно очевидно и понятно – так же, как и в любом другом стандарте 1С.

Второй стандарт – о безопасности прикладного программного интерфейса сервера. Согласно этому стандарту:

  • Когда у нас приложение работает в управляемом режиме (тонкий или веб-клиент), обмен данными между клиентом и сервером происходит по открытому протоколу HTTP. И все, что может сделать клиент, можно сделать и сторонними средствами.

  • В данном случае потенциальную угрозу представляют все серверные функции и процедуры, которые доступны для вызова из клиентского кода.

Здесь тоже вроде все понятно.

Вообще, стандарты 1С – это достаточно компромиссная штука. Я даже сам пару из них написал. Если делать стандарт понятным, то это будет огромная статья. Если писать его совсем кратко, то это будет понятно только тем, кто это и так понимает. А здесь, скорее, будет что-то промежуточное – как правило, одного простого прочтения будет недостаточно, чтобы понять, что там закладывалось в этом стандарте при разработке.

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

На этом слайде я выписал основные ключевые моменты, на которые хочу обратить ваше внимание.

  • Любой экспортный метод из общего модуля с флагом «Вызов сервера» можно вызвать с клиента.

    • Его может вызвать любой пользователь, который хоть как-то авторизован в программе, даже если у него урезаны все права – для этого достаточно только залогиниться.

    • При этом если на какие-то общие формы или объекты метаданных вы можете настроить права, роли, а на общие модули этого сделать нельзя. Конечно, когда мы вызываем в модуле какой-нибудь метод, который обращается к базе данных, а к базе данных у нас по правам нет доступа, тогда, конечно, будет ошибка. Но у нас в типовых конфигурациях достаточно много кода, который на базу никак не завязан, и там таких ограничений нет. Если очень хорошо покопаться, можно найти достаточно интересные лазейки с точки зрения повышения привилегий или позволяющие сделать что-то плохое – главное, знать, что искать.

  • По модулям форм – если мы получили форму на клиенте, она создалась, у нас на это были права, то дальше из этой формы мы можем вызывать любой серверный метод с директивой &НаСервере и &НаСервереБезКонтекста – даже неэкспортный. Тем более, мы можем вызывать весь клиентский код с директивой &НаКлиенте – там можно сделать, что угодно. Например, в «Бухгалтерии предприятия» в очень многих местах выполнение кода вынесено на форму. Если такая форма висит в фоне, при желании можно с этим что-то нехорошее сделать.

  • С кодом и данными на клиенте все и так должно быть понятно – этот код и данные нам доступны без ограничений. И какая-то безопасность на клиенте – это просто фикция. Если мы в формочке на клиенте поставим проверку пароля на правильность, после чего дадим пользователю какой-то доступ, то буквально за несколько минут можно будет получить этот же доступ и без пароля.

 

От кого мы хотим защищаться?

Кто может проникнуть в базу:

  • В базу может проникнуть внешний злоумышленник. Для этого ему достаточно подобрать параметры аутентификации. Если раньше какая-нибудь тетенька-бухгалтер работала в своей «Бухгалтерии» без пароля, и никто ее не беспокоил, то теперь у нас случился карантин, и большинство людей, кто мог, ушли на удаленку – соответственно, опубликовали свои базы в интернет или как-то организовали удаленный доступ. Но та безопасность, которая была, она и осталась – в лучшем случае там хотя бы какой-то пароль есть.

  • По пользователю – если у нас БСП, то логин автоматически формируется как ФамилияИО. Но, как правило, даже это нам не нужно, потому что, как правило, для удобства никто не убирает пользователей из выпадающего списка – если мы знаем, по какому адресу подключаться к базе, мы и так всех пользователей базы увидим.

  • Пароль можно подобрать.

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

    • Самое главное, что пользователи не любят сложные пароли. Из моей практики, 99% простых пользователей – это те, кто использует пароли «1», «123», «1234». В лучшем случае, пароль хотя бы есть.

    • И только начиная с 8.3.16, когда 1С озаботилась этой проблемой, добавила какую-то защиту от перебора. И то – по умолчанию там дается 5 попыток, и для пароля «123» этого вполне хватит.

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

    • Например, никто не задумывается о защите от внешних пользователей. У нас может быть менеджер магазина, имеющий доступ к нашей базе с ограниченными правами – он к нам заходит и делает какую-то свою ограниченную часть работы в АРМ, куда у него выведен один документ.

    • Или у нас может быть какой-нибудь условный кладовщик, которого как-то обидели, но при этом у него есть доступ в базу – ограниченный, но есть.

    • И самая изюминка, когда мы берем какую-нибудь нашу рабочую «Бухгалтерию», добавляем туда АРМ для личного кабинета и публикуем ее, даем к ней публичный доступ – так точно делать не надо.

 

Как будем защищаться?

Как бы в большинстве случаев начал защищаться 1С-ник?

  • Он бы предложил отключить интерактивное открытие внешних обработок, отчетов.

  • А еще – он бы предложил отобрать у пользователя все права, оставить доступ только к тем объектам, которые есть в интерфейсе, чтобы пользователь не смог сделать ничего из того, чего в интерфейсе нет.

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

Но в моей практике пришлось очень часто доказывать, что это не так.

 

Демонстрация

 

Дальше я покажу на примере. Возьмем демо-базу от 1С – открываем инструменты разработчика в браузере и запускаем «Бухгалтерию».

 

 

У нас здесь есть список пользователей, который получается обычным GET-запросом.

 

 

Мы можем выполнить этот GET-запрос отдельно на соседней вкладке. Даже не имея никаких данных авторизации, часть информации из того, что нужно для внешнего злоумышленника, мы уже получили.

Давайте залогинимся под продавцом, у которого, скорее всего, менее привилегированные права, чем у других пользователей.

 

 

В списке запросов фильтром XHR оставляем только запросы к серверу. Все современные браузеры имеют приблизительно одинаковые инструменты разработчика. У меня используется Firefox, но то, что я сейчас здесь покажу, применимо в Chrome, Edge и других браузерах.

Моя задача – показать, что любой экспортный метод в общем модуле с признаком «Вызов сервера» можно вызвать очень просто, и при этом не нужно как-то явно грузить обработку, написанную на языке 1С. Что нам для этого потребуется?

Я буду акцентировать внимание только на тех вызовах, которые нам нужны сейчас для нашей задачи.

 

 

Первый вызов – это login. В параметрах передается:

  • version – версия платформы,

  • cred – это логин пароль в base64,

  • clnId – некий уникальный идентификатор клиента, по которому сервер будет знать, что этот клиент – это именно этот клиент.

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

 

 

Такое же значение, как и в vrs-session, находится в теле ответа в параметре идентификатора сессии seance.

Также в теле ответа нас интересует свойство assemblyVersion – это некая версия конфигурации, значение которой мы будем вставлять в параметр confver для запроса описания модуля.

 

 

Далее нас будет интересовать запрос с методом defs – первый в этом списке, имеющий один параметр confver.

Запрос defs, скорее всего, расшифровывается как definitions – здесь содержится описание метаданных и модулей, которые нам доступны для работы. По сути, это программный интерфейс, представляемый общими модулями.

В ответе на этот запрос к нам приходит JSON-структура, где есть:

  • main – модуль управляемого приложения;

  • global – это общие модули, помеченные флагом «Глобальный»;

  • client – все клиентские модули;

  • server – все серверные модули с флагом «Вызов сервера».

 

 

Например, здесь можно увидеть, что «МодульУправляемогоПриложения» возвращает помимо некого ID-шника еще такое свойство как image – по сути, скомпилированный в байткод сам модуль.

Может, кому-то будет интересно узнать, что в ранних версиях 1С:Предприятие, где-то в районе 8.3.2 клиентский код, написанный в 1С, транслировался в код на JavaScript и, начиная с какой-то версии от этого отказались в пользу компиляции клиентского кода на сервере в байткод для виртуальной машины на JavaScript и выполнении этого байткода уже непосредственно в JavaScript на клиенте пользователя.

 

 

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

Я это говорю к тому, что клиентский код в виде байткода находится на клиенте, его можно здесь запускать под отладкой, можно просто посмотреть все клиентские данные – они находятся на клиенте как некие структуры в JavaScript, и их можно менять. Пошел в консоль, написал код на JavaScript, заменил, и все. Вот и вся защита на уровне клиента. По сути, ее нет.

Это было небольшое отступление. Нас же интересует в текущей теме моего доклада серверные модули с признаком «Вызов сервера».

 

 

Здесь мы можем увидеть огромный список серверных модулей с параметрами

  • id – идентификатор модуля;

  • code – имя модуля;

  • cached и securityinfo – я не разбирался в том, что это значит, но оно нам и не нужно в данный момент.

 

 

Давайте откроем конфигурацию «Бухгалтерия предприятия» и найдем в ней какой-нибудь подходящий пример модуля с вызовом сервера – благодаря стандартам у нас такие модули здесь заботливо размечены. Просто сделаем отбор, и пройдемся, посмотрим код, выберем что-нибудь интересное.

Что-то нехорошее с сервером 1С и с базой 1С я делать не собираюсь, поэтому возьму какой-то простой метод, на котором можно посмотреть, что этот вызов делается достаточно просто, и мне за это ничего не будет.

Я предварительно нашел достаточно простой пример в общем модуле РегламентированнаяОтчетностьАЛКОВызовСервера. В нем есть экспортная функция ВерсияПлатформы(), которая нам, по идее, должна вернуть строковое представление версии платформы. Давайте выполним вызов этого метода.

 

 

Мы видим, что этот модуль к нам в описании пришел, и из него нас будет интересовать вот этот ID-шник – скопируем его в буфер обмена. Я покажу, как дальше 1С понимает, что этот модуль ей может дать.

 

 

Ниже здесь идут вызовы defs, куда, опять же, передается некий идентификатор версии конфигурации confver и еще один дополнительный параметр id – это идентификатор общего модуля.

В ответ на этот запрос к нам приходит описание.

 

 

Для клиентских общих модулей нам приходит байт-код.

 

 

Для серверных общих модулей к нам приходит описание экспортного программного интерфейса. В блоке func перечислены функции. Здесь мы можем видеть:

  • имя функции;

  • количество параметров у каждой из функций;

  • массив с параметрами;

  • массив с пометками о том, какие параметры поддерживают значения по умолчанию.

И то же самое в блоке proc с процедурами.

 

 

Найдем какой-нибудь пример, где производится какой-нибудь вызов. Вызов у нас производится в методе call, которому мы в параметрах передаем идентификатор модуля, а в заголовках – передаем идентификатор сессии vrs-session.

 

 

В теле мы передаем метод, который мы хотим вызвать. И, собственно, параметры этого метода.

 

 

Если функция выполнится успешно, она вернет нам какой-то результат.

 

Четыре запроса в Postman

 

Теперь давайте все то же самое повторим в Postman.

Я сюда вынес эти несколько запросов, чтобы буквально по шагам повторить их. Я мог бы сделать это кодом на JavaScript прямо в браузере, или мог бы написать код на 1С, который будет вызывать этот запрос – это все равнозначные варианты, просто в Postman мне будет это быстрее сделать.

 

 

Авторизация в программе. Для авторизации передаем в параметрах метода login параметры:

  • cred, где содержится логин и пароль в base64;

  • vl, устанавливающий русский язык;

  • и clnId, где содержится произвольный уникальный идентификатор клиента.

Выполняем. В заголовках ответа к нам приходит идентификатор сессии vrs-session – копируем его.

 

 

В теле ответа к нам приходит значение assemblyVersion.

 

 

Получение списка модулей. Когда мы хотим получить список модулей, мы методу defs в параметре confver передаем скопированное значение assemblyVersion

 

 

И в заголовке запроса указываем идентификатор сессии vrs-session.

Вызываем – получаем список описаний модулей. В нем находим интересующий нас модуль РегламентированнаяОтчетностьАЛКОВызовСервера и копируем его идентификатор id.

 

 

Описание модуля. Для метода defs передаем параметры confver и скопированный id модуля (не забываем, что в заголовке запроса нужно указать идентификатор сессии vrs-session) – и получаем описание модуля, где можно увидеть все процедуры и функции, которые у него доступны.

В данном случае нас интересует функция ВерсияПлатформы(). Видно, что она доступна для вызова, параметров у нее нет. Теперь давайте вызовем эту функцию.

 

 

Вызов методов модуля. Для вызова мы используем метод call, в который передается параметр – идентификатор метода id, который мы получили на предыдущих шагах.

 

 

В хедере указываем идентификатор сессии vrs-session,

 

 

А в теле указываем метод, который мы хотим получить – у него параметров нет.

В полученном ответе видно, что мы вызывали метод «ВерсияПлатформы», и видно его возвращаемое значение – это именно строковое значение версии платформы, как и ожидалось.

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

Разобраться в том, как можно вызвать метод без параметров через веб-интерфейс сервера 1С, я смог приблизительно за час. Если бы я потратил два-три часа, я бы смог уже и с параметрами вызывать – это не сильно сложнее. Если потратить еще день, можно уверенно оперировать и вызывать контекстные и неконтекстные методы формы – это достаточно простое действие.

Главное, нужно понимать, что, если мы не даем пользователю открывать обработку, в которой он может написать код на 1С, это не значит, что пользователь у нас с конфигурацией ничего сделать не сможет.

 

Еще раз кратко – доступные прикладные методы HTTP-интерфейса сервера 1С

 

Я показал, как можно вызвать метод в общем модуле, а теперь хочу кратко проговорить это еще раз на слайдах, чтобы было более понятно.

С помощью GET-запроса e1cib/users мы можем получить список пользователей, для которых стоит галочка «Показывать в списке выбора».

Здесь на слайде показана строка для авторизации в веб-клиенте – отправляем POST-запрос, куда передаем логин, пароль, который преобразуется в base64. Причем этот метод даже описан на ИТС.

В заголовке ответа по результатам этого запроса мы получаем значение идентификатора сессии vrs-session, который надо будет использовать в последующих запросах к серверу.

И из тела ответа берем версию сборки assemblyVersion.

Здесь на слайде показано, каким способом мы можем получить список модулей, который доступен для вызова – делается GET-запрос, в котором передается значение версии сборки confver, и в заголовках передаем идентификатор сессии vrs-session.

В теле ответа нас интересует идентификатор id для нужного модуля.

Вот таким образом можно получить информацию о том, что этот модуль предоставляет.

Зачем это нужно? Сейчас в «Бухгалтерии предприятия» я просто скачал конфигурацию той же версии, что и в облаке 1С, и посмотрел в конфигураторе, что за методы есть у нее в модулях.

Но у разработчиков часто бывает ситуация, когда пользователи ставят в облаке какое-то расширение, которого в физическом виде с возможностью посмотреть его код, у нас нет. Однако мы можем вот таким образом получить программный интерфейс, который предоставляет это расширение. И методом подбора посмотреть, что интересного в нем есть – повызывать эти методы.

Здесь на слайде показан сам вызов – мы передаем POST-запрос, в котором:

  • в параметрах запроса указывается id – идентификатор модуля;

  • в заголовке передаем идентификатор сессии vrs-session;

  • а в теле формируем структуру в определенном формате, в которой указывается имя метода, который мы хотим вызвать, и параметры.

В данном случае метод ВерсияПлатформы() не имеет параметров, поэтому параметры – это пустой массив. Если параметры есть, они будут заполняться. Там немного посложнее, но это не какой-то Rocket Science.

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

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

 

Вопросы

 

Можно вызывать любые методы из любых серверных модулей, или только тех, которые доступны на форме? Насколько я понимаю, ответ простой – любые открытые методы, у которых есть программный интерфейс и у модуля стоит признак «Вызов сервера».

Да. Вызвать вы его точно можете, он может просто не выполниться полностью, например, потому, что внутри идет обращение к базе данных, а на эти объекты базы данных нет прав, или явно идет проверка, что если роль доступна такая-то, то делаем, если нет, то кидаем исключение.

Протокол работы тонкого клиента идентичен?

По сути, с тонким клиентом можно сделать все то же самое, только чуть посложнее разобраться – там может использоваться шифрование, сжатие. Но в сам процесс там вклиниться не сложно – для этого есть такие инструменты, как wireshark. А так – все то же самое.

Если мы можем вызвать любой экспортный метод из общего модуля с флагом «Вызов сервера», можем ли мы как-то вызывать методы глобального контекста, например, «Выполнить()» с произвольным кодом в параметрах?

На клиенте это точно можно делать. А что касается сервера – у пользователя же есть настройка «Защита от опасных действий», которая может ограничивать это выполнение. И еще, я так понимаю, в КОРП-версии на уровне профилей тоже можно все ограничить.

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

В моей практике люди написали модуль интеграции, который работал за счет серверного метода, куда передается некий произвольный параметр в виде текста. Этот параметр потом подавался на вход методу «Выполнить» – выполняй что хочешь. И аргументировали это тем, что им не нужно будет каждый раз переписывать эту обработку – достаточно отобрать у пользователя права на запуск внешних обработок, тогда он не сможет написать код, который вызовет этот метод, и все будет хорошо. Пришлось доказывать, что все-таки не все хорошо, что можно за пять минут написать инструмент, который воспользуется этой универсальной функцией.

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на онлайн-митапе "Безопасность в 1С". Больше статей можно прочитать здесь.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4340 02.03.22 14:08 Сейчас в теме
С точки зрения уязвимости всё очень просто - используете толстый клиент с обычными формами, грамотно построенную (не-RLS, конечно) защиту и разбивку по правам, и флаг в руки к такому подкапываться). Для удалёнки делается RDP, его более чем хватает.

А вот что правда интересно, так это возможность парой запросов проанализировать состав процедур и функций всех модулей. Это быстрее и на порядок формализованнее, чем вываливать в текстовые файлы или хмл, и потом их парсить. Вот за это плюс. Возможно, буду делать инструмент с применением этой идеи.
3. Ndochp 103 03.03.22 10:59 Сейчас в теме
(1) С точки зрения уязвимости все еще проще - если ваша модель защиты надеется на недоступность данных скрытием, а не реальными правами - она уже потекла. Если не надеется, то какие бы экспортные функции не запускал пользователь - ничего, что ему не доступно по правам он не сломает.
tormozit; frying; bulpi; +3 Ответить
2. Yashazz 4340 02.03.22 16:16 Сейчас в теме
А ещё можно сниффером каким-нибудь посмотреть, позаписывать, в процессе работы. Ещё что-нибудь интересное всплывёт.
4. VKislitsin 818 03.03.22 13:46 Сейчас в теме
Владимир, спасибо! Это был самый интересный доклад, что мне встречался за последние 3 года.
al.gerasimov; bonv; +2 Ответить
5. Dach 352 03.03.22 16:07 Сейчас в теме
(3) + Веб-клиент + https + ограничение на длительность сессии
6. Ndochp 103 03.03.22 21:01 Сейчас в теме
И что это дает? Ну ладно, HTTPS не даст стащить пароль и прикроет от МИТМ, а остальное?
7. muskul 05.03.22 02:48 Сейчас в теме
Где то писали что тот же тест гилева "забывают" удалить а там могут еще и хранится админские данные от скл сервера.
Jimbo; triviumfan; +2 Ответить
8. bulpi 207 05.03.22 19:09 Сейчас в теме
Все это интересно, плюс поставил. Но не надо забывать историю знаменитого Неуловимого Джо. Он неуловим , т.к. на фиг никому не нужен.
9. Alxby 800 08.03.22 11:31 Сейчас в теме
За методику вызова методов -- однозначный плюс. Но по теме статьи - акцент, как мне кажется, сделан не на том. Проблема не в флагах "вызов сервера" для модулей, а в наличие небезопасных функций/процедур, и не важно каким способом они вызываются. Бездумное следование стандарту - "минимизировать количество модулей с вызовом сервера" - может внушить лишь ложное чувство безопасности. Безопасность же действий на сервере обеспечивается на 90% контролем прав, в том числе программным контролем. Да, в оставшиеся 10% входит и ограничение возможности вызова серверных функций с клиента, но ведь это всего лишь частный случай инкапсуляции - ограничения видимости. А с этим вопросом в платформе вообще все плохо.
tormozit; +1 Ответить
10. Jimbo 9 17.03.22 16:51 Сейчас в теме
Статья закончилась на самом интересном месте - так а где злоумышленник меняет код ? Инъекция или как там это называется.
Вы пробовали отлаживать Erp? Тут с открытым конфигуратором читая по-русски и прыгая по 3-4 раза из разных Модуль, МодульСервер, МодульСерверКлиент, МодульКлиент иногда фиг что поймешь с километровыми запросами, рвущимися и плюсуемыми с подменой текста.
А вы тут написали #param и вот так сразу всё поняли.

p.s. Зри в корень. (с) Козьма Прутков
Оставьте свое сообщение

См. также

Права доступа в 1С:Документооборот 2.1 Промо

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

В программе 1С:Документооборот ред 2.1 механизм системы прав доступа сильно изменился. С одной стороны, права доступа в данной версии стали проще и быстрее, с другой стороны - права по рабочим группам объектов теперь могут противоречить политикам доступа. Разберемся в данной статье как работает механизм прав доступа в 1с документообороте 2.1.

16.09.2016    97194    vlush78    0    

Бесшовная доменная аутентификация ОС при интеграции 1С:ERP и 1С:Документооборот

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

Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 (2.1.29.18) и 1С:ERP Управление холдингом (3.1.7.4) (в клиент-серверном режиме).

16.09.2022    531    oleg21592    4    

Использование Gatekeeper для авторизации доступа к HTTP публикации сервера 1С

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

В статье опишу вариант настройки Keycloack и GoGatekepper для авторизации доступа к HTTP публикации сервера 1С

22.10.2021    1856    malikov_pro    0    

Доработки RLS. Примеры шаблонов. (в т.ч исключения из ограничений) Промо

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

Допиливаем шаблоны RLS. Даем доступ пользователям к некоторым объектам

19.06.2013    72884    EvilDoc    38    

Настройка аутентификации OpenID connect используя Keykloack при подключении к 1С

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

В статье опишу порядок настройки, проверки и направления изучения по теме "Технология единого входа (англ. Single Sign-On), SSO".

22.10.2021    3469    malikov_pro    8    

Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 и 1С:ERP Управление предприятием 2 (в клиент-серверном режиме)

Информационная безопасность Платформа 1С v8.3 1С:Документооборот 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 (2.1.27.1) и 1С:ERP Управление предприятием 2 (2.4.13.103) (в клиент-серверном режиме). Проблема: «После перехода на новую платформу перестала работать доменная аутентификация».

01.06.2021    5249    user1387741    18    

RLS добавление ограничения доступа к данным по произвольному справочнику через штатные механизмы

БСП (Библиотека стандартных подсистем) Информационная безопасность Роли и права Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Управленческий учет Бесплатно (free)

Решал задачу ограничения доступ к объектам по справочнику "Банковские счета" штатными средствами БСП. Конфигурация КА 2.2. В остальных на БСП должно работать так же. Хотел сделать инструкцию для себя на будущее, решил поделиться.

05.08.2020    6063    ER34    3    

Что может скрываться в модуле обработки? Промо

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

Многие из программистов 1С Предприятие при выкладывании своих обработок (например на Инфостарт) закрывают доступ к модулю объектов паролем. Что же они там могут прятать, приведу пару примеров ( http://infostart.ru/projects/3837/ ):

10.04.2009    16482    bestuzhev    84    

Безопасность мобильных приложений 1С, взгляд по диагонали

Информационная безопасность Мобильная разработка Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

Что приходит первое в голову при словах «1С Предприятие»? Даже тем, кто далек от ИТ, представляется большущий компьютер (а тем, кто недалек, стойка двух-юнитных серверов), рядом слушает музыку сервера (как вариант просто музыку) сисадмин, за стеной в опен-спейсе менеджеры принимают заказы и бухгалтерия, сдающая отчетность. «Зарплата, зарплата!»: слышны их радостные крики. «И кадры»: уточняет HR. Да, все верно. Это 1С. Кто в теме, напомнит про крики не совсем приятные: «Все тормозит! Сделайте что-нибудь, #тыжпрограммист». И борющихся за живучесть ИТ-шников. В обычном офисном потоке дел, редко кто задумывается о безопасности. А тех, кто задумывается, прошу под кат…

05.06.2020    5569    capitan    34    

Использование утилиты ring для выяснения данных о программных лицензиях

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

Использование утилиты ring для управления программными лицензиями без ее установки на компьютер пользователя.

22.12.2018    13765    Vovan58    20    

Проверка безопасности установленных паролей

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

Код выводит не установленные пароли, а так же очень простые (1, 123) пароли пользователей. Список можно пополнять.

08.03.2018    10839    nomadon    14    

Информирование об утечке базы 1С

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

Когда работаешь в крупном холдинге, количество сотрудников, имеющих доступ к базам 1С неизменно растет. Рано или поздно появится задача по контролю утечки баз 1С. Конечно мы применим все меры по предотвращению утечки баз, но и информирование о случаях утечки тоже не повредит.

03.03.2018    15479    dima_home    81    

Отключаем предупреждения безопасности в 1С 8.3.9 и выше вручную

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

Как включить/выключить механизм защиты от опасных действий реализованный в новой версии платформы 1С:Предприятие 8.3.9. Одним из нововведений новой версии платформы 1С:Предприятие 8.3.9 стал механизм от опасных действий. После установки новой версии платформы 1С (начиная версии 8.3.9.2033) при попытке открыть внешнюю обработку или расширение программа выдает сообщение..

01.11.2017    66751    webresurs    15    

Многофакторная авторизация. Шаблон проектирования для «1С:Предприятие 8». На примере API «Приватбанка» для юр. лиц

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

Многим из читателей знакомы понятия стандартов разработки и шаблонов проектирования. Для платформы «1С:Предприятие 8» на сайте its.1c.ru описаны базовые стандарты оформления кода и некоторые полезные примеры, но отсутствует информация об высокоуровневых абстракциях. Почти у каждого банка есть реализация обмена с конфигурациями «1С:Предприятие 8», но анализировать код, а тем более реализацию без слёз невозможно. Данная статья предлагает использовать некий шаблон оформления кода для многофакторной авторизации.

11.09.2017    14008    pbazeliuk    6    

Как создать свой профиль доступа в пользовательском режиме в 1С:Бухгалтерии 3.0

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

Допустим, есть следующая задача. Нужно добавить нового пользователя «Анна» в базу 1С:Бухгалтерия 3.0. При этом Анна должна только выставлять и распечатывать Счета на оплату. При этом все остальные документы и справочники только для просмотра. Т.е. добавлять новую номенклатуру и контрагентов она не может. Обязательное условие - не изменять типовую конфигурацию.

06.09.2017    19993    alfanika    4    

Копирование групп доступа между пользователями

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

Доработки, позволяющие переносить группы доступа между пользователями. Подходит для Управление торговлей для Украины, редакция 3.1, Управление торговлей, редакция 11.1 и, я думаю, для других конфигураций, написанных на базе БСП.

03.09.2017    9973    Pervuy    1    

1001-й способ ограничить пользователей 1С

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

Описан еще один способ ограничить пользователя 1С, при помощи подписки на события

13.07.2017    15048    donpadlo    39    

Недостаточно прав доступа или опять забыли дать права на новые объекты

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

При постоянной доработке конфигураций в больших коллективах иногда возникает ситуация, когда программист поместил новые объекты в базу, а права на них дать забыл. При этом обновлять базу не позволяет бизнес. Что же делать? Есть небольшая хитрость.

06.04.2017    36252    Silenser    55    

ubuntu + 1Cv8. Как правильно задать права доступа к базе в терминальном режиме

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

Очень часто возникает проблема с установкой прав доступа в Linux. Один пользователь заходит в базу 1С нормально, а вот второго уже не пускает. Решение проблемы очень простое.

30.03.2016    25478    viptextil    14    

Готовим конфигурацию "Бухгалтерия предприятия 3.0" к аудиторской проверке

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

Бывают такие ситуации, что, предоставляя данные для аудиторской проверки, мы переживаем, как бы проверяющие не узнали чего лишнего. В этой статье я расскажу, как скрыть документы и ограничить отчеты по периоду на примере конфигурации "Бухгалтерия предприятия 3.0"

21.03.2016    11475    duhh    14    

Ограничение доступа к справочнику Склады для УТ 10.3

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

Краткая инструкция простого метода, как ограничить видимость складов для определенных пользователей в УТ 10.3.

25.12.2015    21816    Viktor_Ermakov    9    

Новый вид доступа в УТ 11. Как в УТ 11 изменить константу "ПараметрыОграниченияДоступа"

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

В УТ11 существуют стандартные виды ограничения прав доступа. Например: "Подразделения", "Склады", "Кассы", "ВидыЦен" и т.д. До поры до времени такой набор стандартных видов ограничений устраивает пользователей. Но что делать, если возникла необходимость добавить новый вид доступа? Об этом и пойдет речь в данной статье.

16.12.2015    30839    Spacer    12    

Запуск под пользователем (асинхронный вызов)

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

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

30.07.2015    10436    kvikster    7    

Разделение доступа к документам с учетом подразделения

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

Задача: имеется типовая Бухгалтерия КОРП 3.0. Организация одна, имеется ряд подразделений (не обособленных). Необходимо разделить доступ к документам и отчетам с учетом подразделения. Центральный офис должен видеть все данные.

20.07.2015    39435    mmtv68    8    

Темная сторона обмена по правилам

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

Правила обмена (конвертации) используются в обменах данными повсеместно. Однако за удобство и простоту согласования разных конфигураций приходится платить потенциальной угрозой безопасности: возможностью выполнить в принимающей базе произвольный код на языке 1С.

16.03.2015    15794    saiten    38    

"Скажи пароль" или как работать со свойством СохраняемоеЗначениеПароля объекта типа ПользовательИнформационнойБазы

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

Ряд статей уже затрагивали тему проверки текущего пароля пользователя и работу со свойством "СохраняемоеЗначениеПароля", но конкретики по данному вопросу мало. Данная короткая статья призвана исправить этот пробел.

28.01.2015    33586    mbreaker    16    

Настройка DCOM компоненты "Excel.Application" на 64-битном сервере приложений 1С

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

Описание настройки на 64-битном сервере приложений 1С, позволяющие создавать и использовать COMОбъект "Excel.Application" на сервере 1С. Это поможет обработать большие файлы excel на сервере, в том числе через фоновые задания. Все описанные действия родились по мотивам прочтения тысячи форумов и было опробовано сначала на разработческом сервере, затем на боевом. Поэтому решил выложить это сюда, наверняка спасет вам хотя бы 1 день жизни.

27.01.2015    87328    vet7777    63    

Открытие файлов внешних обработок/отчетов без проблем с безопасным режимом в 1С 8.3 (Разрешаем доступ к привилегированному режиму исполнения кода для безопасного режима настройкой профиля безопасности кластера)

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

Если по какой-то причине вы используете внешние файлы обработок/отчетов (через меню файл - открыть...), то наверняка столкнулись с проблемой невозможности выполнения элементарных операций записи данных. Помогут профили безопасности кластера сервера 1С.

12.09.2014    45732    Puk2    7    

Использование механизма разделения данных вместо RLS

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

RLS, как известно, подтормаживает систему. 1С уже давненько реализовала механизм разделения данных, но до сих пор он не используется в типовых конфигурациях. Интересно, почему?

06.09.2014    53180    newgluk    35    

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

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

Разработчики в управляемых приложениях применили новый механизм настройки прав доступа, о которых и пойдет речь. Будут перечислены все те грабли, которые собрал автор, чтобы вы о них знали.

04.09.2014    96026    Stim213    42    

Что делать если платформа 8.3 не видит программные ключи 8.2

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

Столкнулся с тем что при установке двух платформ 1С 8.3 и 8.2 на один сервер, 8.3 не видит программные ключи, После поиска в просторах интернета нужной инфы не нашел, и пришлось писать в техподдержку, вот что ответили:

18.06.2014    65731    Andruykha    26    

Управление торговлей 11.1 - настройка нестандартных ролей

Информационная безопасность Инструкции пользователю Инструменты администратора БД Платформа 1С v8.3 1С:Управление торговлей 10 Россия Бесплатно (free)

Особенности настройки прав в УТ 11.1 ..рано или поздно, пользователям становится недостаточно того "мощного" функционала, что придуман в УТ 11.1, и дается задание для программиста 1С, чтобы он настроил более тонкие изменения, и ограничения прав.

11.05.2014    75512    Lapitskiy    18    

Задублированные лицензии

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

Исправление ошибки: "На компьютере используются две копии одного и того же файла программной лицензии".

17.04.2014    24196    greenLiss    8    

1С УПП. Перемещение товаров. Ограничение по складам и подразделениям

Информационная безопасность Оптовая торговля Производство готовой продукции (работ, услуг) Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бесплатно (free)

1. Описание стандартного механизма ограничения Доступа на уровне записей для документа Перемещение товаров при одновременном использовании ограничений по Подразделениям и Складам 2. Настройка доступа к документу Перемещение товаров, только при условии доступности обоих складов (Склад-получатель и Склад-отправитель) документа

21.01.2014    20741    DenDSMG    1    

Отключение режима Конфигуратор для пользователей 1С

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

Часто бывает так, что из-за специфики работы бухгалтера, ему нужно давать полные права. А это дает возможность залезать в Конфигуратор. Также при ошибке открытия или функционирования сторонних обработок программа предлагает посмотреть и исправить дело в Конфигураторе. Естественно, пользователи программ 1С не будут сами разбираться с возникшими проблемами, а вот полазить и пощелкать мышкой очень даже могут. Так как можно заблокировать им доступ в конфигуратор? Очень короткая статейка показывает самый быстрый, на мой взгляд, и , главное, эффективный способ блокировки входа в Конфигуратор на примере 1С 8.2.

08.11.2013    32640    xten    28    

Как ограничить "кривые руки" с полными правами или нужны ли в 1С “супер-права”?

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

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

01.11.2013    31267    yuraos    32    

Как подружить две версии СЛК (система лицензирования и защиты конфигурации) на одном компьютере

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

Ни для кого не секрет, что практически все продукты 1С:Совместимо если имеют какую-то защиту, то это СЛК. Причем разные конфигурации могут использовать разные версии СЛК. И не всегда получается их подружить. В этой статье пойдет речь как раз об этом.

07.11.2012    48905    mmk83    23