• Разработка высоконагруженного WebSocket-сервиса

    Как создать веб-сервис, который будет взаимодействовать с пользователями в реальном времени, поддерживая при этом несколько сотен тысяч коннектов одновременно?

    Всем привет, меня зовут Андрей Клюев, я разработчик. Недавно я столкнулся с такой задачей – создать интерактивный сервис, где пользователь может получать быстрые бонусы за свои действия. Дело осложнялось тем, что в проекте были довольно высокие требования по нагрузке, а сроки были крайне невелики.

    В этой статье я расскажу, как выбирал решение для реализации websocket-сервера под непростые требования проекта, с какими проблемами столкнулся в процессе разработки, а также скажу несколько слов о том, как в достижении вышеуказанных целей может помочь конфигурирование ядра Linux.

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

    Читать дальше →
  • Лучшие практики и рекомендации по защите php-приложений от XSS-атак

      Лучшие практики и рекомендации по защите php-приложений от XSS-атак


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



      Большинство уязвимостей связано с неправильной обработкой данных, получаемых извне, или недостаточно строгой их проверкой. Одной из таких уязвимостей является межсайтовое выполнение сценариев (Сross Site Sсriрting, XSS), которая может привести к дефейсу сайта, перенаправлению пользователя на зараженный ресурс, вставке в веб-ресурс вредоносного кода, краже COOKIE-файлов, сессии и прочей информации. Противостоять XSS своими сила поможет применение лучших практик и рекомендаций по безопасному программированию, о которых и пойдет речь ниже.
      Читать дальше →
    • Разворачиваем связку Nginx+Php-Fpm+MySQL с magento2 на борту и раскладываем по контейнерам в Docker

      Добрый день!

      Все чаще стучась в различные компании разработчиков в качестве DevOps инженера, я получаю приблизительно одни и те же тестовые задания. Они отличаются друг от друга версиями PHP или проектами которые надо запустить.

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

      Возможно кому-то это поможет понять, на простом примере, что к чему. Описывать что такое Docker я не буду, т.к. статей на эту тему вагон и маленькая тележка.

      В данной статье, мы подготовим небольшую структуру:

      • В качестве вэб сервера будет использоваться Nginx с минимальной настройкой для запуска проекта.
      • В качестве SQL будет использовать MySQL.
      • PHP7.0-fpm версия c небольшими надстройками для запуска нашего проекта.
      • В качестве проекта который мы будем разворачивать — берем magento2.
      Читать дальше →
    • Уязвимости вашего приложения

        Актуальны ли ещё угрозы XSS? Прошло около 20 лет с тех пор, как Cross Site Scripting (XSS) появился как вид атаки. С тех пор мы получили богатый опыт и знания, защита наших сайтов стала намного сложнее, а многочисленные фреймворки были призваны оберегать нас от ошибок. Но последние данные показывают совсем другую картину: в первых кварталах 2017 года количество сообщений об XSS-атаках и количество найденных уязвимостей выросло в несколько раз.


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


        Прототипом статьи является доклад на конференции HolyJS 2017 Moscow. Алексей — фронтенд-тимлид/архитектор в компании EPAM Systems и один из лидеров сообщества FrontSpot в Минске. Основные области профессиональных интересов: архитектура и инфраструктура приложений, управление разработкой.


        В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

        Читать дальше →
      • Половина наших сотрудников работает удаленно. Рассказываем, как нам это удается

          В Puzzle English работа организована так, что практически все задачи можно выполнять удаленно. Примерно половина сотрудников так и работает: у нас есть люди из Беларуси, Украины, Ирландии, Франции, Черногории, Тайланда. Кто-то изначально живет в другой стране, другие переехали в процессе работы. Еще несколько человек в России, но не в Москве. Сегодня расскажем, как организуем процессы, чтобы качество и эффективность работы были на высоком уровне, несмотря ни на что.


          Читать дальше →
        • Тестирование документации к программным продуктам

          Когда-то в стародавние времена была у меня задача по тестированию документации к нескольким программным продуктам. Пользуясь гуглом, не удалось отыскать на раз-два информацию о том, какими качествами должна обладать документация и кому она нужна. Собирал все по крупицам. Давно принял решение написать об этом, и вот, пользуясь наличием праздничных дней, публикую.
          Читать дальше →