Безопасный file upload в Go: 7 атак на загрузку файлов и как мы их закрывали

«Сделай форму загрузки PDF» – звучит как задача на полчаса. Claude/GPT напишет handler, мы добавим accept=".pdf" на фронте, multer на бэке – и вот у нас работающий upload. Можно деплоить. Проблема в том, что работающий upload и безопасный upload – это разные вещи. Разница между ними – несколько...

Все блоги / Про интернет

Новый слабо централизованный мессенджер с E2E-шифрованием и групповыми чатами, написанный на Go при помощи Fyne

Мысль написать свой мессенджер у меня возникла ещё этак в прошлом году, почти четыре месяца назад. Тогда ещё трава была зеленее и Telegram нормально функционировал, без замедления и финального блокирования. Из-за работы, других проектов и в конце-концов лени я откладывал написание мессенджера до...

Все блоги / Про интернет

Разбираем net/http на практике. Часть 2.3: Динамические маршруты, cookie-аутентификация и управление доступом

В этой статье цикла мы решим главную проблему сервиса DeadDrop: пользователь создаёт секрет, но не может его забрать. Здесь мы: 1) Научим net/http понимать динамические маршруты без фреймворков 2) Научимся подписывать куки через HMAC и узнаем, как оно работает изнутри 3) Настроим безопасное...

Все блоги / Про интернет

Разбираем net/http на практике. Часть 2.2: Архитектура и безопасность. Внедряем Clean Architecture, хэшируем пароли

Продолжаем писать сервис DeadDrop: сегодня идём от монолита к чистой архитектуре В предыдущей части мы реализовали готовый прототип, но его код был спорным: от смешанной логики до хранения секретов пользователей в открытом виде - пора вносить правки! Сегодня мы: 1) Превращаем "толстый" хэндлер в...

Все блоги / Про интернет

Как я переписал Model Context Protocol на Go и получили 100K ops/sec (может и больше)))

Привет! Сегодня расскажу о GoMCP — production-grade альтернативе официальному MCP SDK от Anthropic. Спойлер: получилось в 10 раз быстрее, с multi-tenancy и enterprise-фичами из коробки. 100K+ tool calls/sec (vs ~10K у Python SDK) Security hardening: input validation, audit logging, rate limiting...

Все блоги / Про интернет

Разработчики всё ещё путают JWT, JWKS, OAuth2 и OpenID Connect — разбираем на примерах. Часть 2

Мы продолжаем наше погружение в мир аутентификации и будем разбирать всё на простых примерах с практикой на Go. В первой части статьи мы разобрали, как устроен JWT, зачем нам refresh и access токены и почему в распределенных системах нам необходимо использовать асимметричные алгоритмы подписи....

Все блоги / Про интернет

Разбираем net/http на практике: пишем веб-сервис DeadDrop для безопасного обмена сообщениями

Первая часть цикла «Разбираем net/http на практике»: создаём с нуля сервис DeadDrop — аналог Privnote для безопасной передачи самоуничтожающихся сообщений и файлов. На чистой стандартной библиотеке net/http разбираем основы: • запуск HTTP-сервера • маршрутизация в ServeMux • написание middleware...

Все блоги / Про интернет

Проблемы с которыми я столкнулся при написании рекурсивного парсера journal в Linux

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

Все блоги / Про интернет

Разработчики всё ещё путают JWT, JWKS, OAuth2 и OpenID Connect — разбираем на примерах. Часть 1

JWT, SSO, OAuth, OpenID Connect — названия знакомые каждому разработчику. Но стоит спросить: «Зачем в продакшене нужен JWKS?» или «Чем отличается OAuth2 от OpenID Connect?» — уверенность сразу исчезает. В этой статье мы разберём как устроен JWT и его подпись, зачем нужны access и refresh токены,...

Все блоги / Про интернет

Мониторинг в Linux на уровне ядра. Краткое практическое введение в eBPF+Cilium

Добрый день, всем читающим данную статью. Недавно эксперементируя с eBPF для разработки нового функционала своей EDR для linux-серверов, я столкнулся с огромной проблемой: на просторах интернета есть огромный пласт статей по теории работы с eBPF, однако кратких практических статей как работать с...

Все блоги / Про интернет

[Перевод] Современный подход к предотвращению CSRF/CORF-атак в Go

Команда Go for Devs подготовила перевод статьи о новом подходе к защите Go-приложений от CSRF/CORF-атак. Автор разбирает, как связка TLS 1.3, SameSite cookies и http.CrossOriginProtection из стандартной библиотеки позволяют отказаться от токенов — но только если соблюдены важные условия. Насколько...

Все блоги / Про интернет

[Перевод] Перехват данных из libpam (аутентификация в OpenSSH, passwd) с помощью Golang и eBPF

В этой статье я расскажу о том, как использовать технологии eBPF и uprobes для мониторинга процессов аутентификации в Linux-системах. На примере библиотеки libpam, которая используется в таких инструментах, как OpenSSH и команда passwd, я покажу, как с помощью Golang и динамического трассирования...

Все блоги / Про интернет

Экспорт ключей TLS: зачем, почему и как реализовать с Go

Недостаточно просто записать дамп TLS-трафика: чтобы влезть внутрь анализатором - нужны секретные ключи. Если предусмотреть экспорт ключей при разработке сервиса, то это поможет при отладке. А инженеры DevOps, которые сервис сопровождают, будут рады. В crypto/tls из типовых библиотек Go интерфейс...

Все блоги / Про интернет

Запуск узла Hidden Lake на языке Go

Анонимная сеть Hidden Lake является в своей области уникальным и достаточно своеобразным проектом, т.к. базируется на совершенно иных методах и подходах анонимизации трафика, чем большинство ныне нам известных сетей. Из-за того, что сеть является относительно новой - она часто дополняется и...

Все блоги / Про интернет

Анонимная сеть в 100 строк кода на Go

Прошло уже более года с тех пор как я написал статью - Анонимная сеть в 200 строк кода на Go. Пересмотрев её однажды осенним вечером я понял насколько всё в ней было ужасно - начиная с самого поведения логики кода и заканчивая его избыточностью. Сев за ноутбук и потратив от силы 20 минут у меня...

Все блоги / Про интернет

Не только VPN. Как это было и куда идет

Немного истории, реализация php, perl и банальная реализация на Golang. Интересно? Добро пожаловать в подкат... Читать далее...

Все блоги / Про интернет

Анонимный RAT при глобальном наблюдателе

Удалённый доступ может быть как очень опасной программной функцией, так и очень полезной - всё зависит от контекста, намерений, задач и целей с которыми подобные программы будут применяться. Такая же ситуация с анонимностью и анонимными коммуникациями в общем. Они могут как скрывать злонамеренную...

Все блоги / Про интернет

Группировка ExCobalt снова в обойме и обзавелась новым бэкдором на Go

Спустя месяц в копилку расследований экспертного центра безопасности Positive Technologies (PT Expert Security Center) добавилось еще одно, причем о группировке ExCobalt, за которой мы следим с ноября прошлого года. Напомним: тогда наша команда выяснила, что в составе ExCobalt есть участники...

Все блоги / Про интернет

Назад