💥⚠️ Рекомендации по безопасности: высокая степень уязвимости Curl
Разработчики curl, популярного инструмента командной строки и библиотеки для передачи данных выпустили релиз 8.4.0 11 октября 2023 года. Эта версия включает исправление для двух распространенных уязвимостей, одну из которых разработчики curl оценивают как «ВЫСОКУЮ» степень серьезности и описывают как «вероятно, худший недостаток безопасности curl за долгое время».
Айдишники CVE:
CVE-2023-38545: переполнение буфера кучи SOCKS5, высокая степень серьезности (влияет как на libcurl, так и на инструмент curl)
CVE-2023-38546: внедрение cookie без файла, степень серьезности НИЗКАЯ (влияет только на libcurl, а не на инструмент)
Подробная информация о том, как используются эти CVE, опубликована вместе с рекомендацией. Разработчик curl опубликовал пост с более подробной информацией о том, как возникла уязвимость в результате конкретной реализации поддержки SOCKS5.
В данной статье объясняется, как можно использовать Docker Scout, чтобы понять, есть ли зависимость от curl в образах контейнеров, а также представлено руководство о том, где была введена зависимость и как обновить curl до версии 8.4.0.
Подробности тут
#гайд
Разработчики curl, популярного инструмента командной строки и библиотеки для передачи данных выпустили релиз 8.4.0 11 октября 2023 года. Эта версия включает исправление для двух распространенных уязвимостей, одну из которых разработчики curl оценивают как «ВЫСОКУЮ» степень серьезности и описывают как «вероятно, худший недостаток безопасности curl за долгое время».
Айдишники CVE:
CVE-2023-38545: переполнение буфера кучи SOCKS5, высокая степень серьезности (влияет как на libcurl, так и на инструмент curl)
CVE-2023-38546: внедрение cookie без файла, степень серьезности НИЗКАЯ (влияет только на libcurl, а не на инструмент)
Подробная информация о том, как используются эти CVE, опубликована вместе с рекомендацией. Разработчик curl опубликовал пост с более подробной информацией о том, как возникла уязвимость в результате конкретной реализации поддержки SOCKS5.
В данной статье объясняется, как можно использовать Docker Scout, чтобы понять, есть ли зависимость от curl в образах контейнеров, а также представлено руководство о том, где была введена зависимость и как обновить curl до версии 8.4.0.
Подробности тут
#гайд
👍4❤2👏2
🧖🧖 System Design 101
Объясняются сложные системы, используя наглядные материалы и простые термины.
Готовитесь ли вы к собеседованию по системному дизайну или просто хотите понять, как системы работают, эта массивная шпаргалка будет полезна. Много полезных тем в сжатом виде — от протоколов до нюансов безопасности.
Шпаргалка
#туториал
Объясняются сложные системы, используя наглядные материалы и простые термины.
Готовитесь ли вы к собеседованию по системному дизайну или просто хотите понять, как системы работают, эта массивная шпаргалка будет полезна. Много полезных тем в сжатом виде — от протоколов до нюансов безопасности.
Шпаргалка
#туториал
❤6👍1
#вопросы_с_собеседования
Что такое RAID? Какие основные типы RAID существуют?
В работе с дисками есть две проблемы:
✏️ Низкая скорость чтения\записи
✏️ Выход дисков из строя и потеря данных
И это всё решается с помощью технологии RAID — избыточного массива независимых дисков.
Существуют следующие уровни спецификации RAID: 1, 2, 3, 4, 5, 6, 0. Кроме того, существуют комбинации: 01, 10, 50, 05, 60, 06. Существуют аппаратные и программные RAID-массивы.
Программные массивы создаются уже после установки ОС средствами программных продуктов и утилит, что и является главным недостатком таких дисковых массивов.
Аппаратные RAID’ы создают дисковый массив до установки ОС и от неё не зависят.
RAID 0 — чередование
RAID 1 — зеркалирование
RAID 5 — чередование с четностью
RAID 6 — чередование с двойной четностью
RAID 10 — совмещение зеркалирования и чередования
Что такое RAID? Какие основные типы RAID существуют?
🔥9👍3🌚1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье
Автор «Библиотеки программиста» Станислав Герасимов, инвалид с детства, делится жизненной историей становления профессиональным разработчиком.
В жизни Стаса было всё, но, возможно, именно путь к мечте помог справиться со всеми жизненными трудностями и добиться поставленной цели.
🔗 Читать статью
🔗 Зеркало
Автор «Библиотеки программиста» Станислав Герасимов, инвалид с детства, делится жизненной историей становления профессиональным разработчиком.
В жизни Стаса было всё, но, возможно, именно путь к мечте помог справиться со всеми жизненными трудностями и добиться поставленной цели.
🔗 Читать статью
🔗 Зеркало
👍5
Маск навел суеты вокруг ИИ, поэтому и вам предлагаем немного погрузиться в эту тему. Поможет #дайджест бесплатных курсов по ИИ и ChatGPT:
🚀 Генеративный ИИ для всех — как работает генеративный искусственный интеллект и как использовать его в своей жизни и на работе
🔥 Введение в генеративный ИИ от Google — что такое генеративный искусственный интеллект, как он используется и чем отличается от традиционных методов машинного обучения
🔵 Гарвардский курс CS50 «Введение в искусственный интеллект с помощью Python» — учимся использовать машинное обучение на Python
✈️ Знакомство с ответственным ИИ от Google — что такое ответственный ИИ, почему это важно и как Google внедряет ответственный ИИ в свои продукты
👨💻 Оптимизируем работу с помощью Microsoft Bing Chat — как Bing Chat может выполнять широкий спектр задач и помочь вам оптимизировать весь рабочий процесс
🚀 Генеративный ИИ для всех — как работает генеративный искусственный интеллект и как использовать его в своей жизни и на работе
🔥 Введение в генеративный ИИ от Google — что такое генеративный искусственный интеллект, как он используется и чем отличается от традиционных методов машинного обучения
🔵 Гарвардский курс CS50 «Введение в искусственный интеллект с помощью Python» — учимся использовать машинное обучение на Python
✈️ Знакомство с ответственным ИИ от Google — что такое ответственный ИИ, почему это важно и как Google внедряет ответственный ИИ в свои продукты
👨💻 Оптимизируем работу с помощью Microsoft Bing Chat — как Bing Chat может выполнять широкий спектр задач и помочь вам оптимизировать весь рабочий процесс
❤3👍2
🤔❓ Что ты такое, dhclient?
Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.
Один из самых простых протоколов с точки зрения сетевого взаимодействия — UDP 67+68. Это всего четыре сообщения: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK. И даже не будем усложнять себе жизнь, используя DHCP Relay.
Остальная часть истории здесь
#почитать
Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.
Один из самых простых протоколов с точки зрения сетевого взаимодействия — UDP 67+68. Это всего четыре сообщения: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK. И даже не будем усложнять себе жизнь, используя DHCP Relay.
Остальная часть истории здесь
#почитать
❤🔥17❤3🔥3👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏆 Самые популярные языки программирования 2023
Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇
🔗 Читать статью
🔗 Зеркало
Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇
🔗 Читать статью
🔗 Зеркало
❤3🥱2
Как быть, если запустил скрипт в терминале, без nohup и применения screen? Ждать завершения не вариант, и завершать нельзя...
Сделаем подопытный образец, который в цикле, каждые 2 секунды будет писать в файл числа от 1 до 10000, чтобы визуально понимать что происходит.
Жмем сочетание клавиш ctrl+z в первом терминале, где был запущен скрипт.
Получаем такое:
А теперь в первом терминале запустим команду bg, и увидим такое:
Скрипт продолжил работу в фоне, с того момента где был остановлен. Идем во второй терминал с tail и видим, что цифры продолжили заполнять файл.
Если сейчас закрыть первый терминал, скрипт прекратит свою работу, нужно его отвязать от текущей сессии и демонизировать.
Теперь в первом терминале пишем exit либо просто закрываем его. А во втором терминале работа скрипта продолжается.
Сделаем подопытный образец, который в цикле, каждые 2 секунды будет писать в файл числа от 1 до 10000, чтобы визуально понимать что происходит.
#!/bin/bashОткрываем второй терминал:
for i in {1..10000}
do
echo $i >> /tmp/log.txt
sleep 2
done
tail -f /tmp/log.txtВидим как log.txt постепенно наполняется.
Жмем сочетание клавиш ctrl+z в первом терминале, где был запущен скрипт.
Комбинация клавиш Ctrl + Z посылает процессу сигнал, который приказывает ему остановиться. Это значит, что процесс остается в системе, но замораживается.
Получаем такое:
[1]+ Stopped ./script.shВидим что скрипт остановил свою работу. А во втором терминале с tail, цифры перестали заполнять файл. Ключевое слово - остановил, но не прекратил.
А теперь в первом терминале запустим команду bg, и увидим такое:
[1] + ./script.sh &
Команда bg предназначена для возобновления исполнения остановленной задачи в фоновом режиме в командных оболочках.
Скрипт продолжил работу в фоне, с того момента где был остановлен. Идем во второй терминал с tail и видим, что цифры продолжили заполнять файл.
Если сейчас закрыть первый терминал, скрипт прекратит свою работу, нужно его отвязать от текущей сессии и демонизировать.
disown %1
Команда disown блокирует отправку системного сигнала SIGHUP с помощью командной оболочки и исполняющемуся в фоновом режиме процессу при завершении работы командной оболочки.
Теперь в первом терминале пишем exit либо просто закрываем его. А во втором терминале работа скрипта продолжается.
🤩23👍11❤3🔥3
🤔😱 Что происходит после команды kubectl run?
Представьте, что вы хотите развернуть nginx в кластере Kubernetes, набрав что-то вроде этого в своем терминале:
kubectl create deployment nginx --image=nginx --replicas=3
Через несколько секунд увидите три модуля nginx, распределенных по всем рабочим нодам. Что на самом деле происходит под капотом?
Одна из замечательных особенностей Kubernetes заключается в том, что он управляет развертыванием рабочих нагрузок в инфраструктуре с помощью удобных для пользователя API. Сложность скрыта за простыми абстракциями. Но для того, чтобы полностью понять ценность, которую он нам предлагает, полезно разобраться в его внутреннем устройстве.
Это руководство полностью разбирает жизненный цикл запроса от клиента к kubelet, при необходимости ссылаясь на исходный код, чтобы проиллюстрировать, что происходит. Написано понятным языком.
#туториал
Представьте, что вы хотите развернуть nginx в кластере Kubernetes, набрав что-то вроде этого в своем терминале:
kubectl create deployment nginx --image=nginx --replicas=3
Через несколько секунд увидите три модуля nginx, распределенных по всем рабочим нодам. Что на самом деле происходит под капотом?
Одна из замечательных особенностей Kubernetes заключается в том, что он управляет развертыванием рабочих нагрузок в инфраструктуре с помощью удобных для пользователя API. Сложность скрыта за простыми абстракциями. Но для того, чтобы полностью понять ценность, которую он нам предлагает, полезно разобраться в его внутреннем устройстве.
Это руководство полностью разбирает жизненный цикл запроса от клиента к kubelet, при необходимости ссылаясь на исходный код, чтобы проиллюстрировать, что происходит. Написано понятным языком.
#туториал
👍11🔥5❤2
🤜🤛 🤙 Сoop-Days 2023 — День информационных технологий и безопасности
Конференция Coop-Days 2023 посвящена двум ключевым темам: кооперация и самоуправление, и информационные технологии и безопасность.
Конференция будет интересна как отраслевым специалистам, так и людям, интересующимся и практикующим в своей деятельности практики самоуправления и кооперации.
Видео
#мероприятие
Конференция Coop-Days 2023 посвящена двум ключевым темам: кооперация и самоуправление, и информационные технологии и безопасность.
Конференция будет интересна как отраслевым специалистам, так и людям, интересующимся и практикующим в своей деятельности практики самоуправления и кооперации.
Видео
#мероприятие
👍5👏1
Очередной #дайджест инструментов и материалов по DevOps
🟢 Релиз Docker Desktop 4.25 — улучшения в Docker Desktop для Windows, Rosetta для Linux GA и новый Docker Scout Image Analysis
🟢 Terraform AWS Drift Checks — как бороться с «дрейфом» настроек в IaC
🟢 tEKS — набор модулей Terraform / Terragrunt, предназначенных для предоставления вам всего необходимого для запуска производственного кластера EKS на AWS
🟢 BPF и безопасность: друзья и враги — как BPF используется для обеспечения безопасности, как BPF обеспечивает свою собственную безопасность, свои привилегированные и непривилегированные варианты использования
🟢 Эволюция разработки ПО — подробный рассказ об эволюции Software Engineering и попытка понять, как индустрия должна измениться сегодня
🟢 Релиз Docker Desktop 4.25 — улучшения в Docker Desktop для Windows, Rosetta для Linux GA и новый Docker Scout Image Analysis
🟢 Terraform AWS Drift Checks — как бороться с «дрейфом» настроек в IaC
🟢 tEKS — набор модулей Terraform / Terragrunt, предназначенных для предоставления вам всего необходимого для запуска производственного кластера EKS на AWS
🟢 BPF и безопасность: друзья и враги — как BPF используется для обеспечения безопасности, как BPF обеспечивает свою собственную безопасность, свои привилегированные и непривилегированные варианты использования
🟢 Эволюция разработки ПО — подробный рассказ об эволюции Software Engineering и попытка понять, как индустрия должна измениться сегодня
🔥6👍5❤3😁3🤩3
#вопросы_с_собеседования
Какие основные типы RAID существуют, чем они отличаются?
RAID 0 — Чередование
В системе RAID 0 данные разделяются на блоки, которые записываются на все диски в массиве. При одновременном использовании нескольких дисков (как минимум 2) это обеспечивает превосходную производительность ввода-вывода.
RAID 1 — Зеркальное отображение
Данные хранятся дважды, записывая их как на основной диск (или набор дисков), так и на зеркальный диск (или набор дисков). В случае сбоя диска контроллер использует основной диск или зеркальный диск для восстановления данных и продолжает работу.
RAID уровень 5
RAID 5 является наиболее распространенным безопасным уровнем RAID. Требуется как минимум 3 диска, но может работать до 16. Блоки данных распределяются по дискам, и на одном диске записывается контрольная сумма четности всех данных блока
Уровень RAID 6 — Чередование с двойной четностью
RAID 6 похож на RAID 5, но данные о четности записываются на два диска. Это означает, что для него требуется как минимум 4 диска и он может выдержать 2 диска, умирающих одновременно.
RAID уровень 10 — объединение RAID 1 и RAID 0
Можно объединить преимущества (и недостатки) RAID 0 и RAID 1 в одной системе. Это вложенная или гибридная конфигурация RAID.
Какие основные типы RAID существуют, чем они отличаются?
❤13👍4🥰3
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📯Внимание всем отважным героям и искателям приключений!
«Библиотеки Программиста» с гордостью представляет новую захватывающую игру — «Битва с Драконом». Выберите своих персонажей и сразитесь с древним Крылатым Ужасом Бурлопиворогом в эпическом поединке!
Мы предлагаем вам взять под свой контроль хитроумного изобретателя или ловкого вора.
💎Победителей ждет почет, уважение и награда! Итак, кто осмелится бросить вызов Бурлопиворогу? Начните свою «Битву с Драконом»!
«Библиотеки Программиста» с гордостью представляет новую захватывающую игру — «Битва с Драконом». Выберите своих персонажей и сразитесь с древним Крылатым Ужасом Бурлопиворогом в эпическом поединке!
Мы предлагаем вам взять под свой контроль хитроумного изобретателя или ловкого вора.
💎Победителей ждет почет, уважение и награда! Итак, кто осмелится бросить вызов Бурлопиворогу? Начните свою «Битву с Драконом»!
👏2❤1🔥1🤔1
Разрабы продолжают добавлять поддержку типов данных в Go-Redis. Вот, подвезли поддержку JSON.
С JSON key в Redis вы можете:
Пример демонстрирует, как начать работу с JSON в Go-Redis:
var ctx = context.Background()
client := redis.NewClient(&redis.Options{
Addr: «localhost:6379»,
})
type Bicycle struct {
Brand string
Model string
Price int
}
bicycle := Bicycle{
Brand: «Velorim»,
Model: «Jigger»,
Price: 270,
}
_, err := client.JSONSet(ctx, «bicycle:1», «$», bicycle).Result()
if err != nil {
panic(err)
}
res, err := client.JSONGet(ctx, «bicycle:1», «.Model»).Result()
if err != nil {
panic(err)
}
fmt.Println(«bicycle:1 model is», res)
Изучить подробности релиза
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release 9.3.0 · redis/go-redis
What's new?
JSON support
We are continuing to add support for more Redis data types in Go-Redis. Today, we are happy to announce support for JSON. JSON is a Redis data structure for storing, qu...
JSON support
We are continuing to add support for more Redis data types in Go-Redis. Today, we are happy to announce support for JSON. JSON is a Redis data structure for storing, qu...
❤🔥11👍5🔥1🤔1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🔤 Азбука SQL в примерах. Часть 1. Создаем базу данных и первую таблицу
С помощью этого короткого руководства в трех частях вы создадите базу данных, добавите в неё записи, а затем выполните несколько запросов для их обработки. В первой части мы узнаем, что скрывается за тремя буквами SQL и начнем двигаться к поставленной цели.
🔗 Читать статью
🔗 Зеркало
С помощью этого короткого руководства в трех частях вы создадите базу данных, добавите в неё записи, а затем выполните несколько запросов для их обработки. В первой части мы узнаем, что скрывается за тремя буквами SQL и начнем двигаться к поставленной цели.
🔗 Читать статью
🔗 Зеркало
👏3👍2💯1
💪😎 Подробная сборка сетевого хранилища на базе TrueNAS/ZFS
Очень крутой материал про настройку и обслуживание высокообъемной хранилки на FreeNAS-е с ZFS-ом.
FreeNAS, основана на FreeBSD, ориентированной на сетевое хранилище, которая использует файловую систему ZFS и веб-интерфейс для настройки общего доступа к сети и других параметров. Хотя большая часть настройки и управления системой осуществляется через этот веб-интерфейс, вы можете немного расширить возможности через терминал по SSH.
В этой статье автор расскажет о выборе оборудования, процессе сборки и настройки, некоторых других приложениях, немного теории о том, как ZFS распределяет пространство для хранения массива и как его можно настроить, чтобы уменьшить накладные расходы на распределение.
Читать
#гайд
Очень крутой материал про настройку и обслуживание высокообъемной хранилки на FreeNAS-е с ZFS-ом.
FreeNAS, основана на FreeBSD, ориентированной на сетевое хранилище, которая использует файловую систему ZFS и веб-интерфейс для настройки общего доступа к сети и других параметров. Хотя большая часть настройки и управления системой осуществляется через этот веб-интерфейс, вы можете немного расширить возможности через терминал по SSH.
В этой статье автор расскажет о выборе оборудования, процессе сборки и настройки, некоторых других приложениях, немного теории о том, как ZFS распределяет пространство для хранения массива и как его можно настроить, чтобы уменьшить накладные расходы на распределение.
Читать
#гайд
🔥5👏5🤩3❤2🥰2