TGViewer
1С и AI, полезные инструменты и сервисы, стандарты и паттерны 1С и AI, полезные инструменты и сервисы, стандарты и паттерны @usefultools1c · 2.24K subscribers
Post #193 1.45K

Forwarded from Павел Королев | IT Ланч

🔐 Пароль в коде — это не «быстрое решение», это отложенная утечка

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

И чаще всего у разных заказчиков сталкиваешься с одними и теми же проблемами:
🟣логин/пароль к FTP - прямо в модуле обработки
🟣пользователь и пароль к базе - в коде подключения
🟣параметры внешних ресурсов, которые уезжают вместе с .epf, конфигурацией или выгрузкой базы

▶️Почему это опасно?

Я ловлю себя на мысли, что это странно объяснять: кажется, все и так всё понимают. Но, увы, почти каждый проект одно и тоже.

Код живёт дольше, чем кажется:
🟣Сегодня разработчик «на минутку» прописал пароль прямо в обработке
🟣Завтра эту обработку отправили подрядчику
🟣Послезавтра выгрузили пустую базу для анализа
🟣Потом сделали CF/DT для тестового стенда

А пароль всё ещё там. 😆

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

▶️Безопасное хранение паролей

У 1С на эту тему есть отдельный стандарт:
https://its.1c.ru/db/v8std/content/740/hdoc

Смысл там очень правильный:
🟢по возможности не хранить пароли в информационной базе вообще;
🟢если хранить всё-таки нужно - не класть их в обычные реквизиты объектов;
🟢использовать отдельный объект метаданных с ограниченными правами;
🟢если есть БСП - использовать безопасное хранилище паролей;
🟢не передавать пароль на клиент и не хранить его в реквизитах формы;
🟢читать пароль на сервере непосредственно перед использованием.

▶️В БСП для этого есть методы:


ЗаписатьДанныеВБезопасноеХранилище()
ПрочитатьДанныеИзБезопасногоХранилища()
УдалитьДанныеИзБезопасногоХранилища()


В документации по БСП больше информации:
https://its.1c.ru/db/bsp321doc#content:127:hdoc

Это тот случай, когда лучше взять стандартный механизм, чем писать "ПарольFTP = 12345" в модуле.

▶️А если БСП нет?

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

▶️Резюме

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

❓А вы встречали пароли прямо в коде? Да, конечно, встречали. Почему такое происходит и что нужно сделать чтобы такого не было? 👇


#tech@it_lunch

🔥 Подписывайся на IT Ланч!
  • 👍 9
More from @usefultools1c
  1. Sep 23, 2026📚 Программа A&PM EVENT 2026 готова! Можно открывать и выбирать, на что идти 12–14 ноября.…
  2. Sep 18, 2026Самодостаточность регистров 🟡 При проектировании структуры регистров придерживайтесь прав…
  3. Sep 11, 2026Post #229
  4. Sep 11, 2026🍁 Программа INFOSTART TECH EVENT 2026 полностью готова! Если вы работаете с 1С и хотите п…
  5. Sep 7, 2026Пока искал себе стажёров-программистов 1С, вспомнил, что у меня есть 2 бесплатных курса по…
  6. Aug 31, 2026Большой опрос сообщества 1С Ландшафт технологий 1С - карта инструментов, которыми пользует…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →