Как стать автором
Обновить
2
0.1

Пользователь

Отправить сообщение

Выжимаем максимум скорости из PHP

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров12K

При запуске PHP-приложений крайне важно правильно выбрать веб-сервер. Чтобы объективно оценить производительность популярных решений, мы проводили тестирование не на искусственных данных, а на реальных примерах. Наша цель не заключалась в создании рейтинга веб-серверов для PHP-приложений. Мы стремились показать, в каких условиях каждый сервер сможет продемонстрировать наилучшие результаты.

Читать далее

Безопасность на высоте: как защищать API сегодня

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.1K

К 2030 году количество используемых в мире API составит около 2 миллиардов. Это в 8 раз больше, чем в 2018 году. Рост числа открытых точек увеличивает количество уязвимостей, угроз и прогнозируемых атак. По оценкам экспертов, к 2026–2027 годам рост прогнозируемых атак на API составит 156% от сегодняшнего состояния.

Меня зовут Денис Кириллов, я главный архитектор решения Platform V SOWA в СберТехе. Сегодня я хотел бы рассказать о лучших практиках защиты API в современном мире. Эта тема довольно обширная, поэтому я разделил её на два материала. В первой статье рассмотрим принципы безопасности API, спецификации API и как они влияют на безопасность. Поговорим о проверке объектов на соответствие спецификации и о том, как она помогает снизить риски из списка Тор-10 API Security Risks.

Во второй статье расскажу о проблемах валидации API и совместном использовании механизмов валидации и WAF. Выясним, почему необходим отдельный компонент, который реализовывал бы функцию безопасности по отношению к API. И рассмотрим возможности продукта Platform V SOWA, который мы создали для решения этих задач.

Материал будет полезен специалистам в области информационной безопасности, сопровождения и разработки.

Читать далее

Может ли Orange PI 5 Plus с 32 ГБ памяти заменить домашний/офисный ПК?

Уровень сложностиПростой
Время на прочтение40 мин
Количество просмотров27K
Orange Pi 5 Plus 32GB

Производительность ARM процессоров каждый год увеличивается и все ближе к x86 процессорам. Компания Apple давно отказалась от процессоров Intel в пользу процессоров собственной разработки на ARM архитектуре. Но домашний/офисный ПК это не только процессор, но и софт, драйвера, и подключение любых устройств из коробки. Компания Shenzhen Xunlong Software вначале 2023 г. выпустила одноплатный компьютер Orange PI 5 Plus на базе высокопроизводительного процессора Rockchip RK3588 с 32 ГБ ОЗУ и возможностью подключения NVMe SSD дисков. По техническим характеристикам такой одноплатный компьютер сопоставим с домашним/офисным ПК. Проверим на сколько комфортно работать за таким одноплатником, смотреть YouTube, видео, и конечно же поиграем, установим Steam от Valve. Но самое главное оценим работу системы «из коробки» т.е. без танцев с бубном. Вначале рассмотрим характеристики Orange PI 5 Plus, затем процессор Rockchip RK3588, установку и настройку системы, подключение периферийных устройств, и посмотрим, на сколько хорош Linux на ARM для домашнего использования. В итоге рассмотрим какие существуют преграды замены текущих x86 систем на ARM.
Читать дальше →

Экономика хостера — не, она устроена не так, и зачем действительно мы запускали спутник

Время на прочтение10 мин
Количество просмотров7.4K

Я тут иногда рассказываю про то, как устроен хостинг в блоге VDS-хостинга (знаю, для многих это уже неожиданно), а вы часто спрашиваете, почему у меня волосы на груди окрасились зачем нужны промотарифы за 40 и 130 рублей. И ещё:

  • Зачем хостинг запускает свой спутник.
  • Дидосим ли мы клиентов, чтобы продать им услугу DDoS-защиты.
  • Сколько мы тратим на рекламу.

Волосы на груди у меня окрасились, потому что я пролил на них ракетный окислитель.

  • На рекламу и маркетинг мы тратим 11,21% от общих расходов.
  • Софт — 15,79%.
  • Дата-центры — 11,36%.
  • ФОТ — 10,24%.
  • Железо — 9,62% + кредиты в разных формах на него — 18,97% (я видел отчётность Хетзнера, у них кредитная нагрузка выше).
  • IP-адреса — 5,91%.
  • Налоги — 5,75% (иногда здесь тоже короткий кредит, чтобы не вынимать сумму из оборота).

Возможно, неожиданным для вас будет то, что лицензии на ПО стоят примерно столько же, сколько аренда места в ЦОДах по миру, и что айпишники вообще-то занимают существенную долю затрат хостера.

Сейчас объясню.
Читать дальше →

Игрушечный ботнет на JavaScript под BitBurner

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров3.3K

Предлагаю стать хакерами на пару дней, захватить сеть города и собрать криптовалюту с компьютеров беспечных соседей.

Мы не станем вредить, а вирус напишем в компьютерной игре BitBurner. Писать вирусы - плохо, но изучать - интересно.

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

Читать далее

Небезопасная десериализация в PHP: Как создать собственный эксплойт

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров6K

Привет, Хабр! Сегодня мы познакомимся с уязвимостями небезопасной десериализации в PHP, научимся писать эксплойты для эксплуатации уязвимости в рамках тестирований на проникновение и попробуем себя в анализе кода.

Читать далее

Как мы построили отказоустойчивую open-source-инфраструктуру для управления пользовательскими Linux-устройствами

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров8.4K

Всем привет! Меня зовут Владислав, я руководитель направления развития пользовательских Linux-систем в Т-Банке. Мы работаем над проектом Linux Desktop. 

Проект зародился во времена блокировки иностранного софта. Нам нужен был опенсорсный продукт, который никуда не исчезнет и на закроется. Но прежде чем развивать Linux Desktop, в компании нужно было выбрать систему управления конфигурациями, которая сможет выдержать больше 15 000 хостов. А еще построить инфраструктуру, которая будет отказоустойчивой и не рассыпаться, если один из ЦОДов упадет.

Расскажу, как мы создали инфраструктуру, которая контролирует системы безопасности, магазин приложений, конфигурации ядра и многое другое. А еще такая инфраструктура — запасной аэродром, если вдруг придется отказаться от западного вендора.

Читать далее

Как справляться с негативными эмоциями и почему брать их под контроль — плохая идея?

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров18K

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

Читать далее

Обход OTP и захват панели администратора через Header Injection

Время на прочтение3 мин
Количество просмотров3.9K

Самое лучшее для исследователя в области баг-баунти, — это знания, который предоставляет сам процесс анализа.

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

Целью атаки стала платформа онлайн-образования, на которой была реализована аутентификация через OTP (одноразовый пароль). Когда речь идёт о входе с использованием OTP, первое, что приходит в голову: «Как это обойти?».

Сначала я попытался использовать метод перебора (brute force) и обнаружил, что была реализована защита с ограничением частоты запросов на основе IP-адреса. Это означает, что изменение IP-адреса клиента или IP-адреса, представляемого серверу, может помочь обойти это ограничение и продолжить перебор OTP.

Читать далее

Как работают файловые системы Linux-контейнеров

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров19K

Откуда у контейнера берётся файловая система? Чтобы разобраться, инженер Google Михал Питр воспроизвёл действия Docker и создал файловую систему своими руками. От полноценной реализации его результат отличается тем, что в нём не используется пространство имён для дополнительной изоляции. 

Под катом — перевод, который поможет разобраться, как именно Docker создаёт новую файловую систему с помощью OverlayFS.

Читать далее

Ошибки, которые я совершил, пытаясь быть «слишком правильным» в разработке

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров27K

В начале карьеры мне тоже казалось, что каждый разработчик должен следовать строгим правилам и рекомендациям. Я думал, что чем больше знаний, тем лучше результат. В итоге, передо мной открывался целый мир идеальных паттернов, архитектур и сложных решений. Но со временем я понял: важно не только читать и понимать теорию, но и уметь применить её в реальной жизни. И что ещё важнее — делать, а не спорить.

В этой статье я расскажу о своих ошибках, которые я допустил, пытаясь быть слишком «правильным». Как я заморачивался с кэшированием, пытался сделать универсальные компоненты и топил проект в лишних сложностях. Эти ошибки научили меня одному: не всегда нужно гнаться за идеальностью.

Давайте посмотрим, как я заморачивался с вещами, которые в итоге только усложнили задачу, и что из этого получилось.

Читать далее

Катастрофическое падение производительности из-за hyperthreading

Время на прочтение4 мин
Количество просмотров29K

Недавно я писал статью - что такое 50% cpu? На системах с hyperthreading 50% cpu по метрикам означает, что большая часть ресурсов сервера уже использована. То есть cpu>50% - это уже "желтая зона", и мы ожидаем замедление всего, чего можно. Но я никогда не думал до экспериментов, что падение может быть столь катастрофическим.

Для экспериментов я использую MSSQL. Если вы не связаны с базами, прочитайте первую часть по диагонали до выводов.

Читать далее

Использование Redis в Go

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.2K

Redis — хранилище из семейства нереляционных (NoSQL) баз данных. Redis является очень быстрым хранилищем данных благодаря своей архитектуре in-memory. Он идеально подходит для задач, требующих быстрого доступа к данным, таких как кэширование, очереди сообщений, сессионная информация и многое другое. Go также известен своей высокой производительностью за счет компиляции в машинный код и эффективного управления памятью.

Читать далее

Простая настройка CI/CD для Фронтенда и Бэкенда в Github без сторонних инструментов бесплатно в 2024 году

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров12K

Всем привет! Недавно решил попробовать, что из себя представляет Flutter Web, подумал, может попробовать сделать бота для Telegram, и заодно настроить простейший CI/CD для отдельного фронтенд- и бэкенд-проектов. Однако в интернете я не нашёл простой и исчерпывающей инструкции или процесса.

Поэтому задача этой статьи — решить эту проблему! Сделать автоматическую сборку, тестирование и деплой на сервер, и всё это — без необходимости городить SSH-ключи, Github-токены и подключать сторонние решения. Всё на минималках, без лишней бюрократии.

Читать далее

Docker + Laravel + RoadRunner = ❤

Время на прочтение8 мин
Количество просмотров32K

picture


Данный пост написан по заявкам трудящихся, которые с завидной периодичностью спрашивают о том "Как запустить Illuminate / Symfony / MyOwnPsr7 приложение в докере". Давать ссылку на ранее написанный пост уже не хочется, так как взгляды относительно того, как следует решать поставленную задачу, довольно сильно изменились.


Всё, что будет написано ниже, является субъективным опытом, который (как и всегда) не претендует на право считаться единственно верным решением, но некоторые подходы и решения, возможно, тебе покажутся интересными и полезными.


В качестве приложения так же буду использовать Laravel, так как он мне наиболее знаком и довольно широко распространен. Адаптировать под другие PSR-7-based фреймворки/компоненты возможно, но этот рассказ не про это.
Читать дальше →

23 000 $ за обход аутентификации, загрузку файлов и произвольную перезапись файлов

Время на прочтение6 мин
Количество просмотров15K

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

Предположим, что целью является test.com.

Начав тестирование программы, я нашел способ обхода пользовательского интерфейса административной панели. Цель использует JSON Web Token (JWT) в качестве механизма аутентификации. Я уделил немало времени, чтобы разобраться и выявить возможные уязвимости на объектах программы, использующих JWT.

При входе на основной сайт test.com, для обычного пользователя генерируется JWT.

После изучения работы цели я начал собирать данные:

Читать далее

Немного про Тайм-менеджмент или «спасите от насилия менеджера Василия»

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров16K

Как только вы становитесь Руководителем проектов, да и не только проектов – вообще любым руководителем - список ваших дел начинает расти. Вам больше не ставят задачи в любимой джире по одной, где оценил - сделал. Не. Задачи начинают лететь в вольном формате и неограниченном количестве.

Вы договорились по пяти задачам на сроки готовности? – вам прилетело еще 5, более срочных. Потом еще пара. И еще одна, напоследок, от Генерального. А сделать надо все, от вас ждут.

Это очередная статья посвященная софтскилам и лайфхакам, о которых руководителям не рассказывают на курсах по менеджменту. Если вам интересна эта и подобные темы – подписывайтесь на мой ТГ канал «Морковка спереди, морковка сзади» и читайте другие статьи здесь, на Хабре.

Классическое желание новичка – это сделать все, что дали. «Я же хороший, я же должен показать, что меня не зря сделали менеджером, я должен все успеть». Ничего, что для этого надо задержаться до 9ти, разок можно 😊

Читать далее

Docker + Laravel = ❤

Время на прочтение10 мин
Количество просмотров85K

laravel-in-docker


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

В данной статье я расскажу о своём опыте "заворачивания" Laravel-приложения в Docker-контейнер да так, что бы и локально с ним могли работать frontend и backend разработчики, и запуск его на production был максимально прост. Так же CI будет автоматически запускать статические анализаторы кода, phpunit-тесты, производить сборку образов.


"А в чём, собственно, сложность?" — можешь сказать ты, и будешь отчасти прав. Дело в том, что этой теме посвящено довольно много обсуждений в русскоязычных и англоязычных комьюнити, и почти все изученные треды я бы условно разделил на следующие категории:


  • "Использую докер для локальной разработки. Ставлю laradock и беды не знаю". Круто, но как обстоят дела с автоматизацией и запуском на production?
  • "Собираю один контейнер (монолит) на базе fedora:latest (~230 Mb), ставлю в него все сервисы (nginx, бд, кэш, etc), запускаю всё супервизором внутри". Тоже отлично, прост в запуске, но как на счёт идеологии "один контейнер — один процесс"? Как обстоят дела с балансировкой и управлением процессами? Как же размер образа?
  • "Вот вам куски конфигов, приправляем выдержками из sh-скриптов, добавим магических env-значений, пользуйтесь". Спасибо, но как же на счёт хотя бы одного живого примера, который я бы мог форкнуть и полноценно поиграться?

Для нетерпеливых — ссылка на репозиторий, склонировав который ты сможешь запустить Laravel-приложение одной командой. Так же не составит труда его запустить на том же rancher, правильно "слинковав" контейнеры, или использовать продуктовый вариант docker-compose.yml как отправную точку.
Читать дальше →

Мой первый и неудачный опыт поиска торговой стратегии для Московской биржи

Уровень сложностиСложный
Время на прочтение17 мин
Количество просмотров5.1K

Когда закончил писать механизм своего торгового робота обнаружил, что самое главное всё таки не сам механизм, а стратегия, по которой этот механизм будет работать.

Первый тесты на истории показали что с доходностью и тем более с тем как доходность портфеля компенсирует принимаемый риск (коэффициент Шарпа) проблемы, но неудачный опыт тоже опыт, поэтому решил описать его в статье.

Первый и самый важный вопрос - при помощи чего проводить тесты торговой стратегии на исторических данных? В какой программе или при помощи какой библиотеки создавать стратегию и потом прогонять её на истории?

Раз мой торговый робот создан в среде исполнения JavaScript Node.js, то и тесты в идеале должны проводится на чём-то схожем. Но забегая немного вперёд скажу что получилось по другому - Python пришёл на помощь.

Разбираюсь и ищу 📈

Приватность и безопасность в интернете с Web3: что нужно знать каждому

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.9K

Цель статьи - привести простой и понятный пример применения Web3 на примере работы социальных сетей.

Читать далее

Информация

В рейтинге
4 506-й
Зарегистрирован
Активность

Специализация

Information security architect
Lead
От 15 000 $
Negotiation
C++
Qt
OOP
Linux
PHP
SQL
Nginx
High-loaded systems
Designing application architecture