TGViewer
Channel Public Channel
Программирование {BookFlow}

Программирование {BookFlow}

@bookflow

Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

Группа в https://vk.com/bookflow.

По всем вопросам @evgenycarter

РКН https://clck.ru/3KoAbH
Subscribers
15.6K
Photos
1.7K
Videos
513
Links
2.2K

Showing posts older than #4245 · Back to latest

Older Posts 19 shown
Post #4244 896
📌Лучшие практики для CI/CD-пайплайнов

Правильная настройка CI/CD (Continuous Integration/Continuous Deployment) позволяет ускорить доставку кода, минимизировать ошибки и повысить безопасность. Вот ключевые best practices для CI/CD:

1. Используйте систему контроля версий для всего
- Храните в Git (или другом VCS) не только код, но и конфигурации, скрипты для CI/CD и инфраструктуру как код (IaC).
- Следуйте стратегии ветвления: Git Flow, GitHub Flow, trunk-based development.
- Включите код-ревью и защиту веток перед слиянием (Pull Requests, Merge Requests).

2. Автоматизируйте сборку, тестирование и развертывание
- Используйте Jenkins, GitHub Actions, GitLab CI/CD, CircleCI для автоматизации.
- Включите в пайплайн юнит-, интеграционные, функциональные и безопасностные тесты.
- Настройте автоматическое развертывание, чтобы исключить человеческий фактор.

3. Shift Left: Тестируйте на ранних этапах
- Запускайте статический анализ кода (SAST) сразу после коммита (SonarQube, Checkmarx).
- Добавьте динамическое тестирование (DAST) и сканирование контейнеров.
- Используйте feature flags, чтобы включать/выключать фичи без релиза.

4. Применяйте инфраструктуру как код (IaC)
- Управляйте инфраструктурой с помощью Terraform, AWS CloudFormation, Pulumi.
- Храните IaC-файлы в Git и тестируйте их перед развертыванием.
- Применяйте принцип неизменяемости инфраструктуры (избегайте ручных изменений на проде).

5. Оптимизируйте производительность пайплайнов
- Кэшируйте зависимости (Docker-образы, npm, Maven) для ускорения сборки.
- Разбивайте тесты на параллельные потоки.
- Используйте инкрементальную сборку, чтобы пересобирать только измененные части проекта.

6. Обеспечьте безопасность пайплайна
- Храните секреты в защищенных хранилищах (AWS Secrets Manager, HashiCorp Vault, GitHub Secrets).
- Включите RBAC (разграничение прав доступа) в CI/CD-системе.
- Автоматически сканируйте зависимости, контейнеры и инфраструктуру на уязвимости.

7. Используйте Blue-Green и Canary-развертывания
- Blue-Green: два окружения (старое и новое), переключение трафика без даунтайма.
- Canary-релизы: выкатывайте обновления на небольшой процент пользователей перед полным релизом.
- Автоматически откатывайте неудачные развертывания.

8. Внедрите мониторинг и логирование
- Настройте централизованные логи через ELK Stack, Grafana Loki, AWS CloudWatch.
- Используйте мониторинг Prometheus, Datadog, New Relic.
- Настройте алерты и автоматическую реакцию на сбои.

9. Соблюдайте комплаенс и управление изменениями
- Внедряйте policy-as-code (например, Open Policy Agent (OPA), AWS Config).
- Логируйте все развертывания для аудита.
- Соблюдайте SOC2, HIPAA, GDPR при работе с чувствительными данными.

10. Контроль качества и постоянное улучшение
- Анализируйте метрики CI/CD и оптимизируйте узкие места.
- Получайте обратную связь от разработчиков для улучшения процесса.
- Проводите автоматизированные post-mortem разборы инцидентов.

Следуя этим best practices, вы получите быстрые, надежные и безопасные CI/CD-процессы с минимальными рисками и затратами. 🚀

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 1
  • 🔥 1
Post #4243 1.02K
Leptos

Это современный фреймворк для разработки веб-приложений на Rust с реактивным подходом. Он позволяет писать как фронтенд, так и бэкенд, используя единый стек, с акцентом на производительность и безопасность.

Особенности:

⚡ Высокая скорость работы благодаря компиляции в WebAssembly и оптимизациям Rust.
🔄 Реактивность: обновления интерфейса происходят автоматически при изменении состояния.
🛠 Полный стек: можно писать и серверный, и клиентский код на Rust.
🌐 SSR (Server-Side Rendering) и гидратация для SEO и быстрого первого рендера.
🧩 Богатая экосистема и возможность использовать привычные паттерны вроде компонентов.

Фреймворк позиционируется как альтернатива React/Vue/Svelte, но с силой и безопасностью Rust.

https://github.com/leptos-rs/leptos

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 4
  • 🔥 2
Post #4242 1.23K
‍Quake 1/2/3 (1996-1999)

Разработчик: id Software
Издатель: GT Interactive / Activision
Платформа: DOS / Windows / others
Code review: fabiensanglard.net (Quake 1)
Code review: fabiensanglard.net (Quake 3)

Тут писать особо нечего, вы и сами всё знаете. Знатная веха в создании полностью трёхмерных движков, без всяких хаков вроде 2.5D

Упомяну несколько интересных подробностей. Возможно, это первая коммерческая игра, скомпилированная компилятором с открытым исходным кодом (DJGPP for DOS, ранний порт gcc).

В игре был свой скриптовой язык “Quake C” (позже lcc у Quake 3). Он был встроен специально для того, чтобы игроки могли делать модификации. Это, вкупе с системой ресурсов PWAD, породило огромное сообщество моддеров.

В Quake 1 был инновационный механизм кэширования результатов шейдинга. Но после распространения 3D-ускорителей это потеряло смысл. Следующая игра от id, Rage, использовала эту же идею.

Кроме того, Quake был очень надёжным движком. Никаких глюков растра или обсчёта столкновений.

Quake / Исходники: github.com/id-Software/Quake
Quake 2 / Исходники: github.com/id-Software/Quake-2
Quake 3 / Исходники: github.com/id-Software/Quake-III-Arena

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 6
  • 🔥 3
  • 🆒 2
Post #4241 1.07K
🇷🇺 Разбираешься в радиочипах, оптике и связи?
Забери до 1 000 000 рублей за свои инженерные навыки на турнире «Дронкон» 🇷🇺

«Сталинские Соколы» открывают регистрацию на 4-й Всероссийский турнир «Дронкон», который пройдет с 22 по 26 августа.

Турнир пройдет по направлению:
- Инженерное дело: навыки программирования, сборка электронного оборудования, беспроводная связь, оптические системы + стратегия «Битва Дронов»;

Призовой фонд для победителей:
🥇место – 1 000 000 рублей
🥈место – 700 000 рублей
🥉место – 500 000 рублей
Награда за 4-8 места - 100 000 рублей

Пройди заочный онлайн-этап и получи путевку на очный этап турнира в Республику Татарстан!
Перелет, питание, проживание - за счет организаторов.

🇷🇺 Подать заявку и узнать подробности 🇷🇺
  • 💩 5
  • 👎 4
  • 🤡 3
  • 👍 2
  • 😁 1
  • 🆒 1
Post #4240 1.03K
Шпаргалка по синтаксису CRON


Формат записи:


* * * * * команда
│ │ │ │ │
│ │ │ │ └─ День недели (0–6, где 0 = воскресенье)
│ │ │ └─── Месяц (1–12)
│ │ └───── День месяца (1–31)
│ └─────── Час (0–23)
└───────── Минуты (0–59)


Специальные символы:

* — любое значение (например, каждая минута, каждый день).
, — перечисление (например, 1,15 = 1-е и 15-е число).
- — диапазон (например, 1-5 = с понедельника по пятницу).
/ — шаг (например, */10 = каждые 10 минут).
? — «неважно» (обычно в день месяца или день недели).

Примеры:

0 * * * * → запуск каждый час.
*/30 * * * * → каждые 30 минут.
0 0 * * * → в полночь каждый день.
0 8 * * 1 → каждый понедельник в 8:00.
0 18 15 * * → 15-го числа каждого месяца в 18:00.

Специальные строки:

@reboot → запуск при старте системы.
@hourly → каждый час.
@midnight → каждый день в полночь.
@monthly → каждый месяц в полночь 1-го числа.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 3
  • 🔥 2
Post #4239 1.08K
Redox - это операционная система, написанная полностью на Rust. Проект вдохновлён принципами Unix, но стремится к более безопасной и современной архитектуре. В Redox используются микроядерный подход, драйверы и сервисы запускаются в пространстве пользователя, что уменьшает поверхность атак и повышает стабильность.

Кроме ядра, экосистема включает файловую систему TFS, собственный дисплейный сервер Orbital и набор утилит. Разработчики делают упор на безопасные абстракции Rust и минимизацию использования небезопасного кода.

https://gitlab.redox-os.org/redox-os/redox

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 8
  • 🔥 2
  • 🥱 2
  • ❤ 1
  • 🤷‍♂ 1
  • 🥰 1
  • 🤣 1
  • 🤗 1
  • 🤪 1
Post #4238 1.16K
Чтобы разобраться с правами доступа к файлам в Linux, нам нужно понять, что такое Ownership и Permission.

Ownership

Каждому файлу или каталогу присваивается три типа прав собственности:

🔹Owner: Владелец - это пользователь, создавший файл или каталог.
🔹Group (группа): В группе может быть несколько пользователей. Все пользователи в группе имеют одинаковые разрешения на доступ к файлу или каталогу.
🔹Other: Другие - это пользователи, которые не являются владельцами или членами группы.

Permission

Существует только три типа разрешений для файла или каталога:

🔹Read (r): Разрешение на чтение позволяет пользователю читать файл.
🔹Write (w): Разрешение на запись позволяет пользователю изменять содержимое файла.
🔹Execute (x): Разрешение execute позволяет выполнять файл.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 10
  • 🔥 3
Post #4237 1.13K
Что такое SSO — единый вход?

SSO, или Single Sign-On, — это схема аутентификации, которая позволяет пользователю входить в разные системы с помощью одной учётной записи.

На схеме ниже показано, как работает SSO.

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

Шаги 2–3. Сервер аутентификации SSO проверяет учётные данные, создаёт глобальную пользовательскую сессию и формирует токен.

Шаги 4–7. Gmail отправляет токен на сервер аутентификации SSO для проверки. Сервер регистрирует систему Gmail и возвращает ответ «токен действителен». После этого Gmail предоставляет пользователю доступ к защищённому ресурсу.

Шаг 8. Из Gmail пользователь переходит на другой сайт Google, например YouTube.

Шаги 9–10. YouTube обнаруживает, что пользователь не авторизован, и запрашивает аутентификацию. Сервер SSO определяет, что пользователь уже вошёл в систему, и возвращает токен.

Шаги 11–14. YouTube отправляет токен на сервер аутентификации SSO для проверки. Сервер регистрирует систему YouTube и возвращает ответ «токен действителен». После этого YouTube предоставляет пользователю доступ к защищённому ресурсу.

Процесс завершён: пользователь получает доступ к своему аккаунту без повторного ввода логина и пароля.

Теперь ваша очередь:

Вопрос 1. Реализовывали ли вы SSO в своих проектах? Какая часть оказалась самой сложной?

Вопрос 2. Какой способ входа вам нравится больше всего и почему?

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 🔥 5
  • 👍 3
Post #4236 1.06K
Чем отличаются друг от друга блокировки баз данных?

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

Основные типы блокировок:

🔴Shared Lock: позволяет нескольким транзакциям одновременно читать ресурс, но не модифицировать его
🔴Exclusive Lock: позволяет транзакции как читать, так и модифицировать ресурс
🔴 Update Lock: используется для предотвращения взаимоблокировки, когда транзакция намеревается обновить ресурс
🔴 Schema Lock: используется для защиты структуры объектов базы данных
🔴 Bulk Update Lock: используется во время массовых вставок
🔴 Key-Range Lock: используется в индексированных данных для предотвращения фантомных чтений
🔴 Row-Level Lock: блокирует конкретную строку в таблице
🔴 Page-Level Lock: блокирует конкретную страницу (фиксированный блок данных) в базе данных
🔴 Table-Level Lock: блокирует всю таблицу

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 6
  • 👀 2
  • 🏆 1
Post #4235 1.11K
АВК-6: Персональный Аналоговый Компьютер

Итак, перед нами персональный аналоговый компьютер АВК-6.

Аналоговые вычислительные машины в 60-70-е годы были способны в реальном времени решать системы дифференциальных уравнений до 60 порядка и выше, обеспечивая эквивалентное быстродействие в сотни миллионов операций в секунду, в то время пока цифровые ЭВМ только набирали обороты. Советская и зарубежная промышленность активно выпускала большие и малые аналоговые компьютеры и АВК-6 в этой истории — вершина развития настольных аналоговых компьютеров, удостоенная множества наград в СССР и за рубежом.

Я с детства мечтал заполучить АВК-6 и вот наконец могу провести на нем различные эксперименты, попытаться построить аттракторы, а главное — подтвердить миф о том может ли аналоговый компьютер использоваться как синтезатор.

https://habr.com/ru/companies/timeweb/articles/1052834/

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 6
  • 🔥 1
  • 🎉 1
  • 🏆 1
Post #4234 1.08K
Параллелизм против Конкурентности — это не одно и то же

➡️𝐂𝐨𝐧𝐜𝐮𝐫𝐫𝐞𝐧𝐜𝐲 (Конкурентность):
Конкурентность означает, что приложение продвигается сразу по нескольким задачам одновременно.

Хотя одно ядро процессора может выполнять только одну задачу за раз, оно достигает конкурентности за счёт быстрого переключения между задачами.

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

Основная цель конкурентности — максимально загрузить CPU, минимизируя время простоя.


➡️𝐏𝐚𝐫𝐚𝐥𝐥𝐞𝐥𝐢𝐬𝐦 (Параллелизм):
Параллелизм означает одновременное выполнение нескольких задач.

Для достижения параллелизма задачи разбиваются на независимые подзадачи и обрабатываются одновременно на нескольких CPU, ядрах или GPU.

Пример: Обучение модели глубокого обучения путём разбиения датасета на батчи и параллельной обработки каждого батча на разных GPU.

Цель параллелизма — увеличение скорости обработки за счёт параллельного выполнения задач.


Они не исключают друг друга:

- Можно иметь конкурентность без параллелизма.
- Можно иметь параллелизм без конкурентности.
- А можно совместить оба подхода для систем с высокой производительностью.

📲 Мы в MAX

👉 @Bookflow
  • 👍 7
  • 🔥 2
  • 👏 1
  • 😱 1
  • 💯 1
Post #4233 1.32K
🔥 Оптимизация целочисленного деления: Clang vs GCC vs MSVC

Автор блога NukeTheBees решил проверить, как разные компиляторы оптимизируют преобразование 1D-индекса в 3D-координаты сетки. Эта частая задача требует вычисления как частного, так и остатка от деления.

Архитектура x86 позволяет сделать это максимально эффективно - всего двумя инструкциями idiv (она одновременно вычисляет и частное, и остаток, помещая их в разные регистры). Автор протестировал два подхода на C++:
1️⃣ Стандартные операторы / и %
2️⃣ Использование функции std::div

📊 Что показали компиляторы?

🔹 Вариант с операторами (/ и %):
🏆 Clang сгенерировал идеальный код: всего 2 инструкции idiv и никаких лишних обращений к памяти.
🥈 GCC тоже справился за 2 idiv, но зачем-то скинул промежуточные результаты в стек перед возвратом.
❌ MSVC оплошал и выдал избыточную третью инструкцию деления при вычислении y.

🔹 Вариант с std::div (в надежде помочь компилятору):
✅ MSVC резко исправился, заинлайнил вызовы и выдал те самые оптимальные 2 idiv.
❌ Зато Clang и GCC внезапно отказались инлайнить std::div! В итоге они сгенерировали настоящие вызовы функций (call div), что из-за накладных расходов делает этот код медленнее первого варианта.

💡Ни один из подходов на C++ не смог заставить все три компилятора выдать идеальный машинный код. Поэтому для критически важных участков производительности не стоит слепо доверять компилятору - всегда заглядывайте в сгенерированный ассемблер (например, через Compiler Explorer).

🔗 Подробный разбор ассемблерного кода читайте в статье: https://nukethebees.com/int-division-modulo-optimisation-differences-clang-gcc-msvc/

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 🔥 4
  • 👍 3
  • ❤ 2
  • 🤷‍♂ 1
  • 🏆 1
Post #4232 1.27K
PikaScript

Ультралегкий интерпретатор Python, работающий всего с 4 КБ оперативной памяти, с нулевыми зависимостями. Он готов к использованию из коробки, не требует конфигурации и легко расширяется с помощью языка C. Похожие проекты: MicroPython, JerryScript.

Все это позволяет вам программировать на языке Python даже для самых маломощных микроконтроллеров семейства STM32

https://github.com/pikasTech/PikaPython

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 6
  • 🔥 3
  • ❤ 1
  • 🏆 1
Post #4231 1.11K
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

Английский с нуля 🇬🇧
https://max.ru/UchuEnglish

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных

Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
MAX Системный Администратор | Sysadmin Windows & Linux Server. … Купить рекламу: https://telega.in/m/i_odmin Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
  • 🤮 5
  • ❤ 2
  • 👎 2
  • 💩 2
  • 🖕 2
Post #4230 1.13K
Системный администратор на собеседовании 😎

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 😁 5
  • 👍 2
  • 🔥 2
  • 👏 1
  • 🏆 1
Post #4228 1.53K
Приложения из списка ниже пропали из App Store.

• ВКонтакте
• Одноклассники и основная соцсеть VK
• VK Видео
• VK Музыка
• VK Знакомства
• VK Мессенджер
• Почта Mail
• Дзен

Удаление также приведёт к поломке пушей во всех приложениях — они станут банально неудобными.

В компании VK назвали действия Apple «ничем не мотивированными и неприемлемыми».

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 7
  • 😁 5
  • ❤ 2
  • 👏 1
  • 🤬 1
  • 😇 1
Post #4227 1.24K
🔥 Порт легендарного движка DOOM на Go, вырванный прямиком из недр doomgeneric.

Никакого CGo. Никаких костылей под конкретные платформы. Только чистый, первозданный геноцид демонов, питаемый мощью безжалостной кросс-компиляции Go.

Фичи, достойные Марса:
✅ Ад везде: работает в любом месте, где живёт Go
✅ Аскетизм: только стандартная библиотека Go
✅ Вся сага DOOM: DOOM, DOOM II, Ultimate DOOM, Final DOOM
✅ Поддержка WAD: загружай свои собственные порталы в ад
✅ Память в броне: сборщик мусора Go спасёт от переполнений буфера (но не от какодемонов) (WIP — 95%)
✅ Кросс-компиляция: целься в любую платформу с любого оружия… то есть с любой ОС

https://github.com/AndreRenaud/gore

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 2
  • ❤ 1
  • 🔥 1
  • 🤡 1
Post #4226 1.29K
🧠 Почти половина российских айтишников столкнулись с выгоранием

По данным исследования страхового брокера Mains, 44,7% специалистов в IT находятся в состоянии серьёзного эмоционального истощения.

Особенно заметна проблема среди специалистов 22–35 лет - той самой «основной боевой группы» отрасли. А среди тех, кто уже думает об увольнении, уровень выгорания достигает 67,8%.

Но психика - не единственная проблема. У айтишников часто страдают:

— шея и спина из-за сидячей работы;
— глаза из-за постоянного монитора;
— сон из-за переработок и сбитого режима;
— пищеварение и сердечно-сосудистая система.

До 70% специалистов сталкиваются с синдромом компьютерного зрения. При этом официальных обращений к психологам — всего 0,1% от общего числа медицинских обращений.

Получается классическая история:
код падает — чиним сразу, организм падает — “потом разберусь”.

Берегите себя. Рефакторинг здоровья тоже нужен.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 💯 7
  • ❤ 2
  • 🤯 1
  • 😱 1
Post #4225 1.14K
Я обнаружил крупномасштабное распространение вирусов в GitHub

Это история о том, как я нашел 10.000 репозиториев в GitHub, в которых находится ссылка на скачивание zip архива. В этом архиве — троян. Все эти репозитории от разных контрибьюторов, с разным названием и не являются форками других репозиториев. Даже если мы найдем один такой репозиторий, мы не сможем по нему найти другие репозитории. Но у всех них есть одинаковый паттерн, который и позволил написать скрипт для поиска таких репозиториев.

https://habr.com/ru/articles/1048986/

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
  • 👍 3
Older posts →
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 →