10.1Kпросмотров
10 июля 2025 г.
Score: 11.1K
Давайте поговорим про вашу кибербезопасность как разработчика Нет, это не когда вы хакаете, а вас ☕️ Особенно, когда вы работаете с множественными заказчиками и проектами. А это не только фриланс, но и небольшие компании в том числе. 👨💻 Частые ситуации, когда к вам приходит заказчик с наработками, которые нужно "доделать/переделать/развивать". Вы общаетесь, все нормально, начинаете работу и... Заказчик просто исчезает, как и ваша крипта с кошелька. ➡️ Главное правило: всегда помните, что любой чужой код - это потенциальная угроза. И чем больше прав у языка, на котором проект, тем больше опасность. Одно дело вытащить данные из вашего браузера и отправить в точку Х (metamask и ваши оранжевые аккаунты в опасности). Другое - нанести вред вашей рабочей машинке и украсть ваши личные фото. На что нужно обращать внимание в таких ситуациях: ❗️Красные флаги ✔️ "запусти быстро посмотреть {UI / как работает / в чем ошибка}"
✔️ "скидывает напрямую zip-архив" (хотя часть заказчиков так реально хранят проекты)
✔️ "в репозитории один коммит без истории"
✔️ "репозиторий публичный" (вы бы свой коммерческий проект выставляли бы?)
✔️ отказ общаться вживую с нормального аккаунта Но иногда и у нормальных заказчиков бывают такие комбо, поэтому дальше стоит проверить сам код ДО ЗАПУСКА на предмет опасностей. Используем глобальный поиск по проекту. Можно даже плагины настроить на это. 👩💻 ➡️Конструкции с Function, Function.constructor, eval(), .prototype ... - это скрытый запуск команд, в том числе и отправка данных куда-то
➡️ любые кодировки данных: base64, atob() и тп. Это может быть маскировка url адреса или скрипта
➡️ что за пакеты и команды находятся в package.json Там могут подтягиваться непонятные зависимости, которые через node.js хрен пойми что будут делать. Поэтому сразу жмакайте npm i только если доверяете автору проекта 👩💻 ➡️конструкции с require('child_process')
➡️можно пробежаться по require и посмотреть, не грузит ли проект что-то со сторонних url
➡️конструкция require('vm') и что она делает дальше
➡️еще советуют проверять fs, но это может занять слишком много времени Но помните, что постоянно придумываются все новые способы атак, а под каждый язык будут и свои угрозы. Поэтому есть и потенциальные решения, которые использую и я в том числе: 🟢запуск проекта в изолированной среде или вообще на не основном устройстве
🟢оформление договоренностей (договора и тп) до начала работы над проектом. Хотя бы без оплаты, но проверить на фэковость
🟢брать предоплату 🛡 Ну и я надеюсь вам не нужно повторять о том, чтобы вы не открывали непонятные ссылки из писем/соцсетей и тп. Банально, а вон сколько топ менеджеров постоянно хакают из-за этого Ну и перешли кодящим друзьям, пусть будут начеку