Имя: Пароль:
1C
1C 7.7
v7: Защита запуска формы.
0 botman4
 
28.03.19
15:37
Собственно клиент хочет, чтобы некоторые формы запускались только при наличии USB флешки в системнике.
Есть ли какие варианты для решения такой задачи?

Первое что приходит на ум - это создать файл на флешке и проверять его. Но его можно скопировать.
Тогда можно еще добавить определенное имя флешке и проверять еще его, только как получить имя тома я еще не разбирался.
1 Базис
 
naïve
28.03.19
15:40
wmi. Но снять твою "защиту" быстрей, чем поставить.
2 uno-group
 
28.03.19
15:42
(0) Форматни флешку в НТФС и правильно раздай права на файл. Под другой учеткой не скопируют.
3 botman4
 
28.03.19
15:45
(1) "Защита" в кавычках, но этого хватит.
(2) С правами не вариант.
4 uno-group
 
28.03.19
15:47
Читать некий код из файла на флешки сравнивать с хранящимся в базе. Генерировать новый и писать в оба места новый код. Если кто и скопирует файл то он или устареет или официальный юзер не сможет открыть эту форму и сразу поймет о краже файла.
5 Kigo_Kigo
 
28.03.19
15:49
нахрена такие сложности? открывай некоторые формы через пароль
6 botman4
 
28.03.19
15:49
(4) как вариант.
7 Базис
 
naïve
28.03.19
15:49
8 botman4
 
28.03.19
15:49
(5) пароль не хотят
9 botman4
 
28.03.19
15:50
(7) ВО! Это тема! Спасибо.
10 Базис
 
naïve
28.03.19
15:54
(9) Вчитался в ссылку (7). Действительно, sKripting от litl admin :)

Почитай Андрея Михайлова, "1С: Предприятие 8.0. Системное программирование".
11 uno-group
 
28.03.19
15:56
Сканер отпечатка пальца, метки, таблетки, карты доступа. Систем авторизации сейчас дофига, зачем изобретать велосипед.
12 botman4
 
28.03.19
16:20

Попытка                                                      
    ScrptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl");
    ScrptCtrl.Language="vbscript";                                
    ScrptCtrl.addcode("                                          
    |Function GetComputers()        
    | Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"")        
    | Set colDisks = objWMIService.ExecQuery (""Select * from win32_usbhub"")                       
    | For Each objDisk in colDisks                                                                       
    | disk = disk & "" DeviceID: "" & objDisk.DeviceID & ""; Name: "" & objDisk.Name& "";""                                  
    | Next                                                                                               
    | GetComputers = disk                                                                                
    |End Function
    |");                                                                                                 
    Текст=СокрЛП(ScrptCtrl.Run("GetComputers"));                                                                                       
Исключение                                                                                               
    Предупреждение(ОписаниеОшибки());                                                                    
КонецПопытки;
Сообщить(Текст);



Отседа можно забрать данные.
Всем спс.
13 uno-group
 
28.03.19
16:36
https://www.usbdev.ru/articles/a_ite/itevendatachange/ ну дык и эти данные можно скопировать и записать на свою флешку.
14 Kigo_Kigo
 
28.03.19
17:17
(13) Вы сильно переоцениваете пользователей
15 MWWRuza
 
гуру
28.03.19
17:25
+(14)Сломать можно почти любую защиту... Вопрос - будет ли кто-то этим заниматься, и насколько профессионально... А от рядовых юзеров можно защититься, просто проверяя наличие файла на флешке, ну, для большей "секретности" можно его скрытым сделать :-)))
16 botman4
 
28.03.19
17:39
Для моей задачи этого будет за глаза!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс