Доброго времени суток, коллеги. Подскажите, пожалуйста. Есть внешняя обработка написанная для УТ 10.3. В ней происходит подключение с ftp. Следовательно в коде жестко прописаны логин и пароль для доступа. Есть ли какая-нибудь возможность скрыть хотя пароль? К примеру, может можно как то хранить эти данные в каком-нибудь шифрованном виде? или что-то в этом роде...
---
эТо надо мне как администратору
в идеале сделайте HTTP сервис на своем серваке, который будет отдавать обработку только по определенному ключу.
Как вариант - обработка обращается на сервис с определенным ключом, например, ИНН+КПП+ИДКлиентаВВашейБазе,
а сервис возвращает обратно новую обработку для конкретного клиента. Старая обработка данные обрабатывает, заменяет себя на новую и запускается. А клиент вообще ничего не знает.
---
никто не мешает. Я прекрасно представляю как это должно выглядеть. Как это реализовать технически? Пример кода можете привести?

Из 1с через HTTP-соединение можно запросить файл, только заранее зная его имя. Поэтому пока пришлось реализовать следующим образом. Создала в нужной папке на веб-сервере файл support.txt. Там пишу номер нужной версии. Затем на основании этого формирую имя нужной мне обработки и получаю ее.
---
тут все упирается в то, что во время исполнения этот пароль можно перехватить.
Если это не важно, то можно хранить в макете.
Вариантов много, ограничивается только фантазией.
Можно в макете хранить в двоичных данных.
Можно в текстовом макете хранить фрагменты и собирать по заданному алгоритму.
Можно криптографию подключить.
И т.д. и т.п.
---
Пароль можно хранить в безопасном хранилище и получать его оттуда при открытии формы обработки. А поле ввода пароля на форме можно маскировать звездами, установив ему соответствующий тип.
---
Это УТ 10.3. Там вроде как нет безопасного хранения паролей. Или ошибаюсь?
---
Суть подхода в (2), как я понял, не столько в безопасном хранилище, сколько в том, что логин/пароль должны быть параметризируемыми данными. Само хранилище вы можете организовать по-своему, фантазия в помощь - хоть в реестре windows.
---
самое простое
попробовать пароль на текст модуля обработки поставить
---
Оригинально )
---
Не очень хорошо. Компания платит за эту разработку. И закрывать ее паролем не вариант. Но и светить свой ftp не вариант. ))
---
Вот мыслишка Константы.КазалосьБыХренКтоПрочтетЭтуКонстанту.Получить()" :))
---
если кто-то прочитает в коде пароль, что помешает прочитать его в константе?
Все зависит от степени необходимой защиты пароля.
Можно хранить и в ХранилищеЗначения, хотя бы в той же константе. Там тоже можно посмотреть его, но уже сложнее.
Можно поднять сервис и выдавать токен доступа. Много можно что придумать, но это уже сложнее в реализации.
---
ничем не отличается от хранения пароля в коде
---
Даже хуже. Если внешнюю обработку можно носить на флешке и никому не показывать, то константу в карман не засунешь...
---
тогда не храните пароль в обработке,
на форму выведите ПолеВвода для ввода пароля (с звездочками)

или к админам, доступ к ФТП в разрезе пользователей от системы,
у кого прав нет то ни чего и прочитает
---
а если обработка работает без участия пользователя системы? Кто будет вводить пароль?
---
Так и есть. При запуске обработка проверяет свои обновления на FTP. эТо надо мне как администратору. Но и светить свой ftp я не хочу. Буду думать))
---
Вы когда в планировщике заданий винды добавляете задание, в любом случае хотя бы раз вам нужно пройти аутентификацию админа. Чем ваш случай отличается? И вообще опишите возможные нежелательные кейсы, может ли быть у злоумышленника доступ к серверу 1С, к локальной сети и прочее.
---
При запуске обработка проверяет свои обновления на FTP
Ну и сделайте на своем ФТП отдельный каталог для своей обработки, для конкретного клиента (признака обработки) и дайте туда доступ только одному пользователю только на чтение.
Ну и пусть они этот каталог потом мониторят с логином и паролем, там все-равно ничего, кроме одной обработки не будет или вообще ничего.
---
эТо надо мне как администратору
в идеале сделайте HTTP сервис на своем серваке, который будет отдавать обработку только по определенному ключу.
Как вариант - обработка обращается на сервис с определенным ключом, например, ИНН+КПП+ИДКлиентаВВашейБазе,
а сервис возвращает обратно новую обработку для конкретного клиента. Старая обработка данные обрабатывает, заменяет себя на новую и запускается. А клиент вообще ничего не знает.
---
Вот это подход взрослого человека! Есть только одно но. Для этого нужен постоянно работающий комп с опубликованным сервисом и доступ снаружи (хоть через фикс-IP, хоть через DynamicDNS)...
---
Есть только одно но
не обязательно. Можно через тот же dyndns переадресацию сделать, а там хранить хоть на облаке того же mail.ru :)
---
Это если просто FTP... А если нужен обработчик HTTP-запроса с проверкой ключа - тут все равно нужен сервер, а не публичное облако.
---
Прекрасная идея. Спасибо. Вопрос сразу следующий. Как получить список файлов из 1с через HTTP-соединение, если заранее не известны имена файлов?
---
получить список файлов из 1с через HTTP-соединение
а кто Вам мешает сделать запрос, который вызывает функцию, которая средствами 1С или ещё какими перебирает файлы в каталоге и возвращает Вам список?
---
никто не мешает. Я прекрасно представляю как это должно выглядеть. Как это реализовать технически? Пример кода можете привести?

Из 1с через HTTP-соединение можно запросить файл, только заранее зная его имя. Поэтому пока пришлось реализовать следующим образом. Создала в нужной папке на веб-сервере файл support.txt. Там пишу номер нужной версии. Затем на основании этого формирую имя нужной мне обработки и получаю ее.
---
так вы же запускаете ее в своем сеансе от своего имени....