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

Пентест gRPC

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

В последнее время в современных веб-приложениях с микросервисной архитектурой всё чаще в качестве API используется фреймворк удалённого вызова процедур gRPC. Данный фреймворк чаще всего использует protocol buffers(protobuf) в качестве языка определения интерфейсов и в качестве основного формата обмена сообщениями. Однако, в отличие от более привычных форматов обмена сообщениями (JSON,XML и тд), которые являются текстовыми, в protobuf фигурируют бинарные данные. Помимо этого, gRPC в качестве транспорта использует исключительно HTTP/2. Чаще всего эти обстоятельства вызывают затруденения при тестировании безопасности веб-приложений, которые используют данный фреймворк.

Данная статья поможет разобраться в том, как тестировать веб-приложения, использующие gRPC. Содержание статьи частично пересекается с моим докладом на OFFZONE 2023, однако, если в нём был сделан упор на рассказ об аспектах protobuf и gRPC и обзор существующих инструментов для тестирования безопасности, то здесь мы рассмотрим практический пример по поиску уязвимостей на демонстрационном стенде с использованием Burp Suite и расширения prototbuf-magic, разработанным нами. Для ознакомления с основами protobuf и gRPC рекомендую послушать мой доклад.

Читать далее

Быстрый интерфейс, быстрый деплой

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


Салют! Не так давно создатели знаменитого pydantic выпустили новый фреймворк — FastUI, который позволяет создавать пользовательские интерфейсы с помощью декларативного кода на Python. В этой статье рассмотрим создание простого приложения и деплой его в Cloud Apps.
Читать дальше →

Минус вес, плюс опыт. Как я написал первый пет-проект и веду его уже 6 лет

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

Сколько у вас было пет-проектов? У меня много: календари, тудушники, клоны популярных приложений. Однако до сегодняшнего дня дошёл всего один — приложение для подсчёта калорий Food Diary.

Как оно прожило 6 лет? Почему я продолжаю развивать его и сейчас? Как придумать клёвый пет-проект, который не захочется бросить в первую неделю? Ответы на все вопросы вы найдёте в этой статье. Поехали!

Читать далее

Бэкенд sCRUDge McDuck’а

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

Остросюжетная история о гонке за большими деньгами в IT. Как заработать в 3 раза больше денег на бэкендах?

Читать далее

Как мы обуздали ПОТОК данных со сварочных аппаратов

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

Мы – это специалисты Технопарка «Университетские технологии», в структуре которого есть производственная лаборатория с парком разнообразного сварочного оборудования. Здесь проводится подготовка и проверка практических навыков сварщиков, отработка различных технологических процессов сварки, разработка перспективных способов сварки и т.д. Поскольку мы идём в ногу со временем, на базе лаборатории не так давно было принято решение о разворачивании полигона передовых аппаратно-цифровых решений для оптимизации и мониторинга производственных, главным образом, сварочных процессов. Полигон станет площадкой тестовой эксплуатации аппаратно-цифровых решений для отработки новых идей и их внедрения на промышленных предприятиях новых регионов России. Это также открывает перспективные направления по подготовке специалистов, занятых цифровизацией промышленных предприятий и адаптации имеющихся в распоряжении аппаратно-цифровых решений для конкретных производственных задач.

Читать далее

Доступность, она же accessibility: делимся нашим опытом разработки

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

Всем привет, мы последние 2 года очень плотно подсели на тему доступности (он же accessibility, он же a11y) в наших проектах, хотелось бы рассказать на какие грабли наступали, какие уроки вынесли, возможно, кто-то избежит граблей

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

Идеально для всех не будет, идеально не ждут, любое улучшение будет круто.

Грабли

Как улучшить работу сайта с помощью оптимизации изображений Image Stack

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

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

Чтобы ускорить загрузку страниц и уменьшить объем передаваемых данных, существует Image Stack — инструмент CDN. Он позволяет автоматически оптимизировать изображения, улучшать SEO-результаты и повышать уровень конверсии за счет лучшего пользовательского опыта.

Читать далее

Лучшая система шаблонов в Go

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

Привет, Хабр!

В этой статье хочу поговорить про, пожалуй, мою самую любимую библиотеку для Go. Это Jet templates. Библиотека, которая очень упрощает работу с шаблонами(templates) в Go.

Читать далее

Можно просто так взять и опубликовать Приложение в ОК

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

ОК — большая и популярная социальная сеть. Причем она не только про общение, но и про развлечения: на платформе доступно огромное количество игр и мини-приложений, с которыми аудитория активно взаимодействует. Внутренние приложения и игры ОК использует почти 20 млн человек, и вовлеченность пользователей постоянно растет.

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

Меня зовут Михаил Мосин. Я инженер-программист в ОК. В этой статье я подробно и пошагово расскажу, как зарелизить свое приложение на платформе ОК.

Читать далее

Разработка Telegram Web App с помощью HappyX и telebot

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

В этой статье я расскажу вам, как можно с помощью Nim разработать Telegram Web App, используя HappyX и telebot.

Читать далее

Первый pet-проект, но не бесполезный?

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

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

Однако как‑то на всем известном видеохостинге я наткнулся на трансляцию мужика с проекта Moscow Python (прошу прощения, имя я не запомнил, и сейчас уже просто не найду) который вещал что‑то о начале пути питониста, а заодно рассказал о программе для изучения английского языка Anki. А далее, прямо на трансляции, он сам решил написать аналогичную программу, но совсем в примитивном виде. И тут, очевидно вдохновившись, меня посетила идея, что вполне полезной могла бы оказаться программа для изучения технического английского языка. Ну зачем мне сразу весь язык, если в конкретный период времени он мне необходим только для уверенного чтения и понимания документации. И я написал...

Читать далее

Web components как альтернатива iframe на примере Angular-компонентов

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

Всем привет! Я Сергей, фронтенд-разработчик из команды привлечения Центрального университета. Занимаюсь проектами, связанными с регистрацией абитуриентов на мероприятия, и внутренними проектами по управлению мероприятиями. 

Осенью мы ждем поступление бакалавров. Чтобы начать набор, нужно встроить форму регистрации в лендинг на CMS. Форма довольно простая: пара полей для ввода данных, диалоговое окно с текстом соглашения об обработке персональных данных и кнопка отправки данных на сервер. Для скорости работы и проверки работоспособности идеи решили встроить приложение через iframe. Но форма стала обрастать различными бизнес-требованиями, которые приносили проблемы. В статье расскажу, с какими трудностями мы столкнулись и как их решали.

Читать далее

Использование Verified Permissions для реализации точной авторизации в высоконагруженных приложениях

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

Техники оптимизации функции авторизации в современных веб-приложениях.

В статье рассматриваются эффективные подходы к управлению точной авторизацией с использованием Amazon Verified Permissions (читай Cedar Engine). Вы узнаете о техниках пакетной авторизации и кэширования ответов, которые помогут значительно повысить производительность и отзывчивость приложений.

Читать

Я прождал 10 миллиардов тактов и дождался лишь экрана загрузки

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

Современное оборудование невероятно быстрое. M1 Max, на котором я пишу эту статью, работает с частотой 3,2 ГГц. То есть 3,2 МИЛЛИАРДА тактов в секунду. Однако Microsoft Teams требуется 3 секунды, чтобы открыть ссылку, и я отказываюсь верить, что для открытия ссылки требуется 9,6 МИЛЛИАРДА тактов. Очевидно, я упрощаю, но смысл остаётся прежним: как так получается, что оборудование становится быстрее, а приложения — только медленнее?

«Потому, что мы выполняем гораздо больше задач». Так считает любитель позднего капитализма. Позвольте объяснить.

Превосходный пример мощи современного «железа» — это видеоигры. Я могу симулировать огромные 3D-среды с физикой и освещением, полученным трассировкой лучей, при этом играть в реальном времени с друзьями из других штатов и даже стран; вполне доступный компьютер потребительского уровня выдаёт 124 миллионов пикселей в секунду1.

[1. 1080p при 60 FPS = 1920 × 1080 × 60 = 124416000]

Можно посмотреть и в обратном направлении: людям удаётся запускать DOOM на почти любом устройстве с процессором: на калькуляторах, iPod, фотокамерах. Невероятно маломощные, зачастую одноразовые устройства обладают достаточными вычислительными ресурсами, чтобы выполнять сверхсовременную на 1993 год игру. Это не особо удивляет, ведь прошло три десятка лет, но показывает, какой путь мы проделали.

Читать далее

Как некорректная разработка API может привести к удалению пользователей

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

В продолжение рассказа об уязвимостях, которые были обнаружены пентестерами УЦСБ  и легли в основу кейсов на премии Pentest Award, публикуем разбор следующего реального примера.

Расскажем, как в веб-приложении одной компании была обнаружена связка уязвимостей, позволявшая удалить любого зарегистрированного пользователя из системы.

Читать далее

Заметка про пользовательские соглашения в Web-играх

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

Некоторое время назад у меня была дискуссия на тему необходимости оповещать пользователей о сборе пользовательских данных в Web-играх.

Многие крупные проекты в Google Play при первом запуске требуют прочитать и принять пользовательские соглашения: обычно это Privacy Policy и Terms of Use.

Однако в Web-проектах, например на Яндекс.Игры или VK Игры, такого не встретишь. И не понятно, нужно ли это там. Я провёл небольшое «расследование» на площадках, и, кажется, понял, как это устроено.

Читать далее

Перенос JWT-токенов в куки: Django REST + React

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

Привет, Хабр!

Эта статья родилась из моего опыта реализации авторизации с использованием JWT-токенов, хранящихся в куки. Я решил поделиться этим опытом, чтобы зафиксировать свои знания и, возможно, помочь тем, кто столкнется с похожими задачами

Статья будет полезна тем, кто хочет разобраться в реализации авторизации с JWT-токенами в куки с помощью Django REST Framework.

Читать далее

Управление временем в проектах

Время на прочтение4 мин
Количество просмотров13K
Самая большая боль современного человека – время. Время является одним из самых важных и нужных ресурсов. Но проблема в том, что время никогда не повернуть вспять, нельзя сохранить в какой-нибудь баночке «до лучших времен», нельзя вложить в банк, что-то на него купить или продать (фильм «Время» не в счет). Мы тратим время, пытаясь обменять его на что-то другое. Именно поэтому важно понимать то, как ты тратишь свое время, нужно уметь его ценить и правильно организовывать рабочий процесс.

И правда. Успех любого человека зависит не только от того, какой доход он имеет или какими другими материальными ресурсами обладает. Особенно важно то, как шевелятся шестеренки в его голове, как он воспринимает мир, ищет ли он возможности, развивается ли он в том или ином направлении и насколько эффективно распоряжается своими ресурсами, особенно временем. Ведь от того, куда, как и сколько ты вложишь времени, зависит достижение определенных результатов и целей. И это относится абсолютно к любому проекту, заданию. Никто еще не смог заменить человека как ресурс. Поэтому чем более эффективными мы будем, тем больше и качественнее мы сможем решать задачи любой этимологии, тратя на это минимум ресурсов. Вот почему знания данной темы применимы абсолютно в любых областях. Но всегда остается самая большая головная боль человечества – как быть максимально эффективным при минимальных затратах?
Читать дальше →

Как мы сократили time to market на 17%, не выжигая команду и не теряя в качестве

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

В стартапах на счету каждая секунда: чем быстрее выйдешь на рынок, тем больше шансов стать единорогом, а не очередной строчкой в списке таких амбициозных, но не взлетевших проектов. Но при этом скорость выхода на рынок не покроет критичные ошибки в коде и неюзабельный интерфейс. В этом кейсе расскажем, как мы сокращали time to market в разработке мобильных приложений для одного из первых BNPL-сервисов Подели.

Читать далее

UI-kit в разных структурах Ozon

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

Всем привет! 

Меня зовут Курилкина Арина, я почти год являюсь фронтенд-разработчиком интеграционных и инфраструктурных сервисов склада. Также я 2,5 года разрабатывала мессенджер для сайтов Покупателя (Buyer Experience или же, как мы у себя говорим, — BX) и Продавца (Seller Experience — SX). Таким образом, я успела поработать с продуктами трёх крупных структур Ozon: BX, SX и Warehouse (Складские сервисы*).

Каждая структура уникальна, имеет свои потребности, свои проблемы и свои решения. И каждая является неотъемлемой частью функционирования компании Ozon. Своеобразные три кита, на которых стоит маркетплейс. Поработав с каждым из них, я посмотрела на клиентскую разработку и на работу с дизайн-системами и UI-kit’ами, в частности, с разных сторон. И теперь я хочу поделиться своим опытом.

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

Читать далее