Bluemonday — это инструмент для очистки HTML-контента. Его главная задача — защитить веб-приложения от атак типа Cross-Site Scripting (XSS), удаляя из пользовательского ввода потенциально опасные теги и атрибуты.
Bluemonday использует политики на основе allowlist, позволяя контролировать, какие элементы остаются в HTML, а какие — удаляются.
Встроенные политики уже оптимизированы для типичных сценариев, например, для обработки пользовательского контента.
Инструмент интегрируется в Go-проекты и поддерживает разные форматы ввода, от строк до потоков.
Чтобы избежать уязвимостей, важно применять инструмент на последнем этапе обработки и с осторожностью настраивать политики.
Пример очистки пользовательского контента с помощью стандартной политики UGC:
import (
"fmt"
"github.com/microcosm-cc/bluemonday"
)
func main() {
p := bluemonday.UGCPolicy() // Политика для пользовательского контента
dirtyHTML := `<a href="https://example.com" onclick="alert('XSS')">Ссылка</a><script>alert('bad')</script>`
cleanHTML := p.Sanitize(dirtyHTML)
fmt.Println(cleanHTML)
}
Результат:
<a href="https://example.com" rel="nofollow">Ссылка</a>
Вредоносный
<script>
и атрибут onclick
удалены, добавлен rel="nofollow"
для безопасности.💬 Используете ли вы подобные санитайзеры, фреймворки безопасности или собственные решения? Делитесь тулзами в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🥱2❤1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁35
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?
Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.
Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).
👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.
Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).
👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
🎮 Игра на Go: от меню до победы
Если вы пишете на Go, но устали от серверного кода и CLI-интерфейсов — то мы нашли для вас видео, в котором с нуля реализован классический «Сапёр».
В основе проекта лежит библиотека Raylib с Go-обвязкой, которая обеспечивает простой API для работы с окнами, текстом, мышью и отрисовкой.
➡️ Смотреть видео
🐸 Библиотека Go-разработчика #буст
Если вы пишете на Go, но устали от серверного кода и CLI-интерфейсов — то мы нашли для вас видео, в котором с нуля реализован классический «Сапёр».
В основе проекта лежит библиотека Raylib с Go-обвязкой, которая обеспечивает простой API для работы с окнами, текстом, мышью и отрисовкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👾5🤔1
Недавно один из подписчиков спросил:
Как вы подходите к принятию технических решений в команде?
Технические решения — это не просто выбор между «правильно» и «неправильно». Это баланс между бизнес-целями, техническими ограничениями, ресурсами и человеческими факторами.
В каждой команде свой стиль, инструменты и методики, но есть общие практики, которые помогают выработать эффективный подход.
Прежде всего, важно чётко понять задачу, собрать все необходимые данные, требования и ограничения. Это может включать обсуждения с коллегами, анализ текущей архитектуры и бизнес-целей.
Ни одно решение не должно приниматься в одиночку. Обсуждения с командой помогают выявить разные взгляды, обнаружить скрытые риски и найти альтернативные подходы.
Для упрощения выбора полезно использовать визуализации — схемы, диаграммы, прототипы. Формальные практики, такие как технические или архитектурные ревью, помогают систематизировать процесс и задокументировать принятые решения.
В идеале — это компромисс, основанный на аргументах и фактах. Иногда необходимо голосование или прототипирование, чтобы проверить гипотезы на практике.
В ситуациях разногласий роль лидера — принять окончательное решение и донести логику до команды.
После внедрения решения полезно провести анализ его эффективности, выявить удачные и проблемные моменты. Такой подход позволяет учиться на опыте и улучшать процесс принятия решений в будущем.
Открытость, структурированность и последующий анализ — вот основные принципы, которые помогают команде работать эффективно и с минимальными конфликтами.
💬 Какие методы принятия технических решений работают в вашей команде? Ждём ваши ответы в комментариях 👇
P.S. Напоминаем, вы можете спросить сообщество библиотеки Go разработчика и не только! Самые интересные вопросы обязательно опубликуем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2🥰1
В процессе разработки и деплоя Go-программ в продакшн-среду важно минимизировать зависимости и размер итогового бинарного файла.
Команда, которая компилирует программу с минимальным размером и включает все зависимости статически:
go build -ldflags="-s -w -extldflags '-static'"
-s
: удаляет информацию о символах (символьные таблицы и отладочную информацию), что сокращает размер бинарника.-w
: исключает таблицу отладочных данных, еще больше уменьшая размер.-extldflags '-static'
: компилирует все внешние зависимости в статически слинкованный бинарник, чтобы он не зависел от библиотек на целевой системе (особенно полезно в контейнерах).Эта команда полезна для создания приложений, которые должны быть максимально легкими, независимыми и готовыми к деплою в такие среды, как Docker или другие облачные платформы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉21👍14
Зачем наступать на грабли, если можно обойти их? В карточках типичные ошибки, которые совершают начинающие программисты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱15❤2👍2🤔2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁55🔥5🤩2⚡1
Go славится своей простотой, скоростью и лаконичностью. Многие разработчики считают, что «чистый net/http — это и есть фреймворк». Но всё больше проектов строятся на готовых решениях: Gin, Fiber, Echo.
Так стоит ли вообще использовать фреймворк в Go — или лучше идти по пути минимализма?
🔧 Когда стоит выбрать фреймворк:
• Нужно быстро MVP. Меньше кода — больше результата. Тогда Gin или Fiber экономят время.
• Команда новичков в Go. Фреймворки помогают с организацией кода, предлагают готовые паттерны.
• Проект типовой: REST API, простая маршрутизация, CRUD. Нет смысла писать всё руками.
• Не хочется собирать инфраструктуру самому. Логгеры, middleware, CORS — всё уже есть.
⚙️ Когда лучше писать на «голом» net/http:
• Долгосрочный проект. Чем меньше зависимостей — тем проще поддерживать.
• Нужен полный контроль. Нет «магии», всё прозрачно и предсказуемо.
• Следуете философии Go. Чем проще и очевиднее — тем лучше.
• Хочется писать идиоматично. Стандартная библиотека Go — это уже почти идеал.
💬 Что думаете вы? Go хорош и без обёрток или фреймворки наше всё? Делитесь рассуждениями в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤3🤔3😢2🌚1
📰 Дайджест недели
Краткий взгляд на темы недели.
— Google рассказали о ключевых обновлениях Go
Среди главных обновлений — удобные итераторы для упрощения циклов, расширенная поддержка WebAssembly и встроенная постквантовая криптография для повышения безопасности.
— Теперь можно общаться с репозиториями через AI
GitHub представил собственный сервер Model Context Protocol (MCP), интегрированный с GitHub Copilot.
Это открывает новые возможности для автоматизации рабочих процессов, анализа данных и создания AI-приложений, взаимодействующих с репозиториями.
— Новый выпуск Cup o' Go
— Команда Go рассказала о выявленных уязвимостях в криптобиблиотеке
Обновления:
— stoolap 0.0.6
Устранена серьёзная ошибка потери данных в режиме хранения в памяти.
— tint v1.1.0
Добавлена функция, позволяющая выводить цветные атрибуты без использования ANSI-кодов.
🐸 Библиотека Go разработчика #свежак
Краткий взгляд на темы недели.
— Google рассказали о ключевых обновлениях Go
Среди главных обновлений — удобные итераторы для упрощения циклов, расширенная поддержка WebAssembly и встроенная постквантовая криптография для повышения безопасности.
— Теперь можно общаться с репозиториями через AI
GitHub представил собственный сервер Model Context Protocol (MCP), интегрированный с GitHub Copilot.
Это открывает новые возможности для автоматизации рабочих процессов, анализа данных и создания AI-приложений, взаимодействующих с репозиториями.
— Новый выпуск Cup o' Go
— Команда Go рассказала о выявленных уязвимостях в криптобиблиотеке
Обновления:
— stoolap 0.0.6
Устранена серьёзная ошибка потери данных в режиме хранения в памяти.
— tint v1.1.0
Добавлена функция, позволяющая выводить цветные атрибуты без использования ANSI-кодов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Forwarded from Библиотека задач по Go | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Forwarded from Библиотека задач по Go | тесты, код, задания
🤔37👾9😁1
SDET-инженер (Test Impact Analysis) — от 285 000 ₽, Удаленно (Москва)
Middle Backend разработчик (Python + Golang) — от 230 000 ₽, Офис (Москва)
Golang-разработчик (Middle) — от 300 000 ₽, Удаленно (Москва)
Tech Lead Golang — от 5 000 $, Удаленно
Разработчик GO — Удаленно (Москва)
Бустер — удалённо (не только Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
Собрали для вас мероприятия для нетворкинга, обмена опытом и профессионального роста.
Масштабная конференция по управлению знаниями в IT состоится 2 июня в Москве. Практики документирования, онбординга, менторинга и развития внутренних сообществ от специалистов топовых компаний.
4 июня в Москве состоится GolangConf 2025 — профессиональная конференция для Go-разработчиков и их руководителей.
26–27 июня в Санкт-Петербурге пройдет Saint TeamLead Conf — мероприятие для тимлидов, руководителей команд и технических менеджеров, стремящихся развивать лидерские навыки и обмениваться опытом управления командами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1