Можно ли защитить ДанныеИзБезопасногоХранилища от полных прав?
По сути там регистр сведений, вся "безопасность" которого в том, что он не читается под обычными пользователями.
Т.е. от полных прав его никак не защитить, так?
Я думал, закрыть модуль на пароль, чтобы имя ключа в безопасном хранилище было не известно, но так не получится, потому что полные права могут просмотреть регистр и узнать название ключа.
Так?
ОбщегоНазначения:
Или можно какое другое хранилище использовать?
Т.е. от полных прав его никак не защитить, так?
Я думал, закрыть модуль на пароль, чтобы имя ключа в безопасном хранилище было не известно, но так не получится, потому что полные права могут просмотреть регистр и узнать название ключа.
Так?
ОбщегоНазначения:
Функция ДанныеИзБезопасногоХранилища(Владелец, ИмяБезопасногоХранилищаДанных, Ключ)
ТекстЗапроса =
"ВЫБРАТЬ
| БезопасноеХранилищеДанных.Данные КАК Данные
|ИЗ
| #ИмяБезопасногоХранилищаДанных КАК БезопасноеХранилищеДанных
|ГДЕ
| БезопасноеХранилищеДанных.Владелец = &Владелец";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяБезопасногоХранилищаДанных", "РегистрСведений." + ИмяБезопасногоХранилищаДанных);
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Владелец", Владелец);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Результат = Новый Структура(Ключ);
Если РезультатЗапроса.Следующий() Тогда
Если ЗначениеЗаполнено(РезультатЗапроса.Данные) Тогда
СохраненныеДанные = РезультатЗапроса.Данные.Получить();
Если ЗначениеЗаполнено(СохраненныеДанные) Тогда
ЗаполнитьЗначенияСвойств(Результат, СохраненныеДанные);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
ПоказатьИли можно какое другое хранилище использовать?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Единственный способ защитить данные - это шифрование.
Т.е. шифруем ключом и помещаем в БезопасноеХранилище.
И наоборот, получаем данные и ключом расшифровываем. (на форме пользователь вводит ключ для расшифровки данных).
+ защищенный общий модуль (от программиста)
Единственный способ защитить данные - это шифрование.
Т.е. шифруем ключом и помещаем в БезопасноеХранилище.
И наоборот, получаем данные и ключом расшифровываем. (на форме пользователь вводит ключ для расшифровки данных).
+ защищенный общий модуль (от программиста)
(9)
1с Предприятие можно запустить под другим пользователем, если вы админ.
(даже не зная его пароля)
Программист - это бог в среде 1с. От него очень сложно где-то спрятаться.
Разве что, читать какие-то данные из файла на клиенте. (программист может вмешаться в процесс чтения данных)
Может отказаться от использования 1с?
1с Предприятие можно запустить под другим пользователем, если вы админ.
(даже не зная его пароля)
Программист - это бог в среде 1с. От него очень сложно где-то спрятаться.
Разве что, читать какие-то данные из файла на клиенте. (программист может вмешаться в процесс чтения данных)
Может отказаться от использования 1с?
(1)
Это не так работает.
Он читается под любыми пользователями там где это надо. Читать надо в привилегированном режиме.
Пример приведен в комментарии функции ПрочитатьДанныеИзБезопасногоХранилища в этом же модуле.
что он не читается под обычными пользователями.
Это не так работает.
Он читается под любыми пользователями там где это надо. Читать надо в привилегированном режиме.
Пример приведен в комментарии функции ПрочитатьДанныеИзБезопасногоХранилища в этом же модуле.
(11)Не давайте пользователю полных прав.
Вы занимаетесь ерундой, откровенно говоря.
У пользователя полные права, он может назначить себе любые права. В том числе открытие внешних отчетов и обработок.
Далее может сделать внешнюю обработку, которая в привилегированном режиме выполнит запрос по регистру, и вернет все что угодно.
А вы можете хотеть все что душе угодно.
Вы занимаетесь ерундой, откровенно говоря.
У пользователя полные права, он может назначить себе любые права. В том числе открытие внешних отчетов и обработок.
Далее может сделать внешнюю обработку, которая в привилегированном режиме выполнит запрос по регистру, и вернет все что угодно.
А вы можете хотеть все что душе угодно.
(12)
рефакторинг прав будет стоить клиенту целое состояние.
Я убрал у полных прав администрирование и все - полные права стали не очень полными.
Сделал запрет на изменение пользователей, профилей и групп доступа на уровне неотключаемого под полными правами расширения.
Да, все же думаю, шифрование неплохо, в 1С есть простое шифрование?
Но можно и хранилище настроек пользователя - оно черный ящик.
Обычно если я чего-то хочу, я хочу обоснованно.
рефакторинг прав будет стоить клиенту целое состояние.
Я убрал у полных прав администрирование и все - полные права стали не очень полными.
Сделал запрет на изменение пользователей, профилей и групп доступа на уровне неотключаемого под полными правами расширения.
Да, все же думаю, шифрование неплохо, в 1С есть простое шифрование?
Но можно и хранилище настроек пользователя - оно черный ящик.
Обычно если я чего-то хочу, я хочу обоснованно.
(18)Вы огребете таким способом проблем, и не защитите ничего.
При желании пользователь с полными правами получит все что угодно.
В некоторых конфигурациях консоль запросов встроена.
Это может еще допустимо для краткосрочного этапа, когда выполняется перенастройка прав.
Но не как постоянное решение.
Дать пользователям полные права, а потом писать, что надо у него убрать то что не должен видеть - я даже спорить на эту тему не собираюсь.
Если не пользоваться специально для этого предоставленными инструментами, а потом жаловаться, что работает не так. Ну сами себе злобные буратины.
При желании пользователь с полными правами получит все что угодно.
В некоторых конфигурациях консоль запросов встроена.
Это может еще допустимо для краткосрочного этапа, когда выполняется перенастройка прав.
Но не как постоянное решение.
Дать пользователям полные права, а потом писать, что надо у него убрать то что не должен видеть - я даже спорить на эту тему не собираюсь.
Если не пользоваться специально для этого предоставленными инструментами, а потом жаловаться, что работает не так. Ну сами себе злобные буратины.
(20)
а можно полюбопытствовать, о каких проблемах идет речь. Чисто для расширения кругозора?
А то может я за 20 лет работы в 1С чего-то упустил.
О каком "все угодно" идет речь, если у него нет прав "АдминистраторСистемы"?
Пользователю да, можно смотреть все данные.
Я хочу скрыть ключ двухфакторной авторизации на Plusofon, не более.
а можно полюбопытствовать, о каких проблемах идет речь. Чисто для расширения кругозора?
А то может я за 20 лет работы в 1С чего-то упустил.
О каком "все угодно" идет речь, если у него нет прав "АдминистраторСистемы"?
Пользователю да, можно смотреть все данные.
Я хочу скрыть ключ двухфакторной авторизации на Plusofon, не более.
(23) Я не знаю всех деталей того, что именно вы сделали.
Поэтому и спрогнозировать все проблемы не берусь.
Простой пример.
Если вы убрали в предопределенном профиле Администратор роль Администратор системы.
После этого в базе может не остаться ни одного администратора.
Зайти в конфигуратор после этого будет невозможно.
БСП не всегда хорошо отслеживало такую проблему.
Поэтому и спрогнозировать все проблемы не берусь.
Простой пример.
Если вы убрали в предопределенном профиле Администратор роль Администратор системы.
После этого в базе может не остаться ни одного администратора.
Зайти в конфигуратор после этого будет невозможно.
БСП не всегда хорошо отслеживало такую проблему.
(31) ну вы меня совсем "за миддла" держите. Я сделал отдельный профиль "Полные права", где только роль "Полные права".
Там изначально все users были администраторы. Я не адмнистраторам назначил группу "Полные права" с профилем "Полные права". Стало безопаснее - по крайней мере базу никто не сольет.
Поэтому было бы интересно услышать про реальные возможные проблемы, а не страхи.
Хотя в любом случае безопасность у пользователя улучшилась от такого мелкого изменения, которое я сделал по доброте душевной.
Там изначально все users были администраторы. Я не адмнистраторам назначил группу "Полные права" с профилем "Полные права". Стало безопаснее - по крайней мере базу никто не сольет.
Поэтому было бы интересно услышать про реальные возможные проблемы, а не страхи.
Хотя в любом случае безопасность у пользователя улучшилась от такого мелкого изменения, которое я сделал по доброте душевной.
(38)
А простые не умею.
Так я днесь писал про оное, которое методом копипасты делается. А как там внутрях шифровать - не проблема, хоть [данные XOR строка]. Другое дело, что если это дальше куда-то поедет уже из 1С, то отладчик поможет пользователю с полными правами. И если дело в защите решения от нелегального использования, то там вообще внешняя обработка целиком дешифруется, помещается в хранилище значений и оттуда запускается - так сделано в СЛК. И СЛК сначала лицензию смотрит, и если все ок, то дешифрует обработку и запускает ее. А т.к. из обработки текст выпиливается, то даже в отладчике при замере производительности будет что-то типа ГУИД Х мс...
(44)
только хардкор
Ну остается только грохнуть табличку юзеров и перезапустить конфигуратор. Кто-то о таком писал. Конфигурация в БД никак не шифруется, поэтому всегда есть возможность получить доступ. Все упирается в стоимость взлома, а заломать такое в принципе не так сложно.
(47)
достаточно просто без знания пароля SA? С обрезанными правами на открытие внешних файлов?
Без доступа к конфигуратору?
И конечно же, он потом вернет сохраненный SQL дамп таблицы пользователей назад, чтобы никто не спохватился?
А мне кажется, что не просто. Переубедите меня.
достаточно просто без знания пароля SA? С обрезанными правами на открытие внешних файлов?
Без доступа к конфигуратору?
И конечно же, он потом вернет сохраненный SQL дамп таблицы пользователей назад, чтобы никто не спохватился?
А мне кажется, что не просто. Переубедите меня.
(33)
Вообще, шифрование есть симметричное (один ключ на расшифровать и зашифровать) и ассиметричное (один ключ на зашифровать, другой на расшифровать). У пользователя ключ где-то на токене, у админа его нет. Тогда сработает в принципе любой метод, но админ может точку останова на сервере установить и глянуть, что там в переменных. И чтобы его обвести вокруг пальцев, нужно, чтобы защищенный контент расшифровывался где-то изолировано от 1С и в 1С это все не должно светиться вообще.
Зашифровать(Чтото, Секрет)
Расшифровать(Чтото, Секрет)
А на "чтото" и "секрет" - это в отладчике можно поглядеть будет? Ну и, что совсем интересно, на результат выполнения этого?
Расшифровать(Чтото, Секрет)
Вообще, шифрование есть симметричное (один ключ на расшифровать и зашифровать) и ассиметричное (один ключ на зашифровать, другой на расшифровать). У пользователя ключ где-то на токене, у админа его нет. Тогда сработает в принципе любой метод, но админ может точку останова на сервере установить и глянуть, что там в переменных. И чтобы его обвести вокруг пальцев, нужно, чтобы защищенный контент расшифровывался где-то изолировано от 1С и в 1С это все не должно светиться вообще.
(39)
внутри закрытого на пароль модуля будет секрет в коде прописан, так что точки останова не проблема
Ну так всю полезную работу стоит делать внутри такого модуля. Только, если я правильно помню, есть декомпиляторы. Но тут, как говорится, стоимость взлома должна превышать стоимость легального использования.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот