Pull to refresh
3
0
Сергей @zuzzz

java разработчик

Send message

Может ли Java-приложение использовать больше памяти, чем размер кучи

Reading time11 min
Views19K

Возможно, вы замечали, что Java-приложение может превышать лимит памяти, указанный в параметре -Xmx (максимальный размер кучи). Дело в том, что JVM помимо кучи использует и другие области памяти. 

Давайте начнем со структуры памяти Java-приложения и источников потребления памяти.

Читать далее
Total votes 19: ↑15 and ↓4+14
Comments1

Создание оптимизированных образов Docker для приложения Spring Boot

Reading time11 min
Views21K

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

В этой статье рассматриваются различные способы контейнеризации приложения Spring Boot:

- создание образа Docker с помощью файла Docker,

- создание образа OCI из исходного кода с помощью Cloud-Native Buildpack,

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

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments1

Burp и его друзья

Reading time11 min
Views18K

В этой статье мы расскажем о полезных плагинах для Burp Suite Professional — инструмента для анализа веб-приложений. Плагинов много, и, чтобы помочь аудиторам сделать правильный выбор, мы составили список тех, которые сами чаще всего используем в работе.


img

Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments3

Как защититься от «бестелесных» веб-шеллов

Level of difficultyMedium
Reading time12 min
Views5.1K

В сегодняшней статье эксперты Сайбер ОК проведут вас за руку по лабиринту хакерских уловок и на пальцах объяснят, что такое "бестелесные" веб-шеллы и как защитить от них свои ресурсы.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments1

Вы не умеете играть в Героев 3: 13 карт S-размера, которые вы не пройдете за вечер

Reading time11 min
Views61K

Впервые Герои появились в моей жизни лет в 7. Как сейчас помню, зимние каникулы, тётя, старше меня на 16 лет (невероятно взрослая и крутая, слушает Металлику, у нее даже есть косуха), запускает с диска «Герои Меча и Магии III: Полное собрание». Я в предвкушении устраиваюсь сзади на диване, впереди лучшие часы для нас двоих. Для меня Геройский стрим (поиграть меня пустят только через пару лет), а для неё — несколько часов тишины.

За последние 15 лет моя игра в «Герои» не сильно менялась. Ну, сложность повыше, ну, компов побольше. Те же автосгенерированные карты, только сбоку. Если нападать, то на армию не сильно больше моей. Если магия, то жахнуть от души «Цепью молний», на крайний случай «Армагеддон», (если Черные Драконы есть). Но смысл один: строим Ратушу, захватываем Лесопилку, подбираем сундучок, скупаем прирост, отвоёвываем замок у компа. Приелось.

Сразу скачивать карту XXL-убийцу самооценки было стрёмно, а узнать, как играют тру-пацаны — интересно. Оказалось, некоторые картоделы давно уже создают карты-пазлы, с боями на подумать знание поведения ИИ, с использованием багов игры или просто на хитрую логистику. Таких карт-загадок меньше и они не очень популярны, но я нашла 13 шедевров Heroes Might and Magic III S-размера. (Будет очень много скриншотов).

Я веду ламповый Telegram-канал GameDEVils и блог на Substack . Заглядывайте в гости, я делюсь там материалами про геймдизайн, разработку и историю игр ^__^
Читать дальше →
Total votes 187: ↑178 and ↓9+220
Comments106

Атаки на JSON Web Tokens

Reading time6 min
Views33K


Содержание:


  • Что такое JWT?
    • Заголовок
    • Полезная нагрузка
    • Подпись
    • Что такое SECRET_KEY?
  • Атаки на JWT:
    • Базовые атаки:
      1. Нет алгоритма
      2. Изменяем алгоритм с RS256 на HS256
      3. Без проверки подписи
      4. Взлом секретного ключа
      5. Использование произвольных файлов для проверки
    • Продвинутые атаки:
      1. SQL-инъекция
      2. Параметр поддельного заголовка
      3. Внедрение заголовка ответа HTTP
      4. Прочие уязвимости

Что такое JSON Web Token?


Веб-токен JSON обычно используется для авторизации в клиент-серверных приложениях. JWT состоит из трех элементов:


  • Заголовок
  • Полезная нагрузка
  • Подпись

Заголовок


Это объект JSON, который представляет собой метаданные токена. Чаще всего состоит из двух полей:


  • Тип токена
  • Алгоритм хэширования

Официальный сайт предлагает два алгоритма хэширования:


  • «HS256»
  • «RS256»
Читать дальше →
Total votes 14: ↑6 and ↓8+4
Comments25

Кратко о форматах TLV, BER, CER, DER, PER

Reading time8 min
Views15K

Я хотел бы кратко рассказать о таких форматах данных, распространенных в ИТ-индустрии, в том числе в области инфраструктур открытых ключей (ИОК), смарт-картах, включая документы нового поколения на базе смарт-карт, в мобильной связи. Хотя рассматриваемые форматы и связаны с ASN.1, но некоторые из них ушли далеко за пределы этой области. О некоторых из них многие знают, но не все знают настолько, чтобы, допустим, уметь отличать BER от DER, а некоторые варианты типа PER вообще являются экзотикой.

Глубоко в тему погружаться не буду. Просто познакомлю с главными особенностями, чтобы понимать, что это такое и с чем это едят. Досконально и в полном объеме всё это описано в соответствующих стандартах ITU-T X.690 и ISO 7816.

Одна из моих мотивирующих задач — это уложить тему в своей голове по полочкам.

Правила абстрактной нотации (ASN.1) используются, когда надо специфицировать формат некой структуры данных. Сами правила описаны в стандартах ITU-T X.680–X.683. Пожалуй, что наиболее распространенный вариант применения — это форматы сертификатов X.509 и всего, что имеет к ним отношение. Пример текстовой нотации может выглядеть как-то так:

Читать далее
Total votes 29: ↑29 and ↓0+29
Comments3

Как уменьшить размер образа Docker для JVM

Reading time8 min
Views10K
image

Если вы уже достаточно долго пишете на Kotlin, или Scala, или на любом другом языке, основанном на JVM, то могли заметить: начиная с Java 11 среда Java Runtime Environment (JRE) больше не поставляется в виде отдельного дистрибутива, а распространяется только в составе Java Development Kit (JDK). В результате такого изменения многие официальные образы Docker не предлагают вариант образа «только для JRE». Таковы, например, официальные образы openjdk, образы corretto от Amazon. В моем случае при использовании такого образа в качестве заготовки получался образ приложения, завешивавший на 414 MB, тогда как само приложение занимало всего около 60 MB. Мы стремимся к эффективной и бережливой разработке, поэтому такая расточительность для нас непозволительна.

Давайте же рассмотрим, как можно радикально уменьшить размер Docker-образа для Java.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments16

Docker Swarm для самых маленьких

Reading time13 min
Views126K

Данная статья посвящена настройке и работе с Docker Swarm.

Swarm это стандартный оркестратор для docker контейнеров, доступный из «коробки», если у вас установлен сам docker.

Что нам потребуется для освоения:

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments26

ЕГРЮЛ, доходы и расходы, налоги, количество сотрудников в XML и JSON бесплатно

Reading time7 min
Views34K

Налоговая отдаёт данные ЕГРЮЛ  по организации в виде PDF. Посредники за автоматический доступ по API хотят денег. На многих сайтах часть данных закрыто, часть функций недоступны бесплатно, и полно рекламы. 

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

Налоговая просит 150 000 рублей в год за доступ к данным ЕГРЮЛ в виде сваленных в архивы XML-файлов. У ФНС классный бизнес. Вы проявляйте должную осмотрительность при выборе поставщиков, но доступ к данным за деньги. Если вы хотите получить доступ и к реестру индивидуальных предпринимателей (ЕГРИП), то платите ещё 150 000 рублей в год. Согласитесь 300 000 рублей в год приличная сумма.

Остальные реестры данных у налоговой доступны бесплатно. Однако, без базы ЕГРЮЛ их вряд ли можно использовать. Самая частая операция в бизнесе подставить реквизиты из ЕГРЮЛ по ИНН.

Сформировалась целая отрасль, можно сказать, торговцев воздухом открытыми данными, создающих ВВП из воздуха как бухгалтеры, работающие руками там, где должны работать программы. Сколько компаний платит налоговой по 300 000р. в год?! Сколько программистов занято написанием одинаковых по функциям парсеров, которые переводят данные из XML налоговой в SQL и JSON?! Сколько серверов заняты под одинаковые функции?! Где добавочная стоимость? Все вроде при деле, а за чей счёт банкет?

Ну, ладно, “скандалить, критиковать каждый может”(с) как говорил бессмертный товарищ Райкин. “А что ты предлагаешь?” — резонно вы меня спросите. А я вам отвечу.

Читать далее
Total votes 140: ↑138 and ↓2+160
Comments139

Как запретить Windows 10 перезагрузку после обновлений

Reading time2 min
Views88K
Всем привет. Удивительно, но ответ на этот вопрос (точнее, «как сделать всё так, чтобы было как раньше») слабо освещён в рунете. Да и в целом готовое решение ещё нужно поискать.
Однако проблема требует решения т.к. система восстанавливает после перезагрузки далеко не все приложения.

Итак:
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments293

.xlsx изнутри. Разбор структуры файлов. Разбор каждого .xml файла

Reading time25 min
Views49K

Это статья о разборе excel изнутри. Вы узнаете как работать со стилями ячеек, листов через xml, как вносить данные и формулы в ячейки и мого другого.

Читать далее
Total votes 85: ↑85 and ↓0+85
Comments74

15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли

Reading time8 min
Views104K


Есть «Super Mario», признанная классика видео игр. Есть «Doom», который запускают на чайниках и тестах на беременность. Есть супер-популярные по статистике twitch.tv игры («League of Legends», «GTA V», «Fortnite», «Apex Legends») которые стримят пятая часть всех стриммеров.

А есть игры, на которые очень мало обзоров, но они супер крутые — игры про алгоритмы. Игры, в которых можно кодить на ретро-компьютере; игры, которые надо взламывать; игры, где можно программировать контроллеры или поведение персонажей; игры, где можно создавать свою игру внутри игры.

Под катом подборка классных игр про алгоритмы за последние 10 лет. Если что-то упустила — буду рада дополнениям.

Еще я создала канал в Telegram: GameDEVils, буду делиться там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Total votes 78: ↑73 and ↓5+88
Comments98

Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым

Reading time54 min
Views127K

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

Часто для этого рекомендуется получение прав суперпользователя в системе (root-права), удаление системных приложений от Google и от производителя устройства, или даже полная замена стандартной ОС на альтернативные сборки, чаще всего LineageOS (бывший CyanogenMod). При этом первым шагом в этом процессе всегда будет так называемая "разблокировка загрузчика". Во время её выполнения устройство несколько раз покажет нам страшные предупреждения о том, что теперь оно станет более уязвимо для злоумышленников, но мы смело нажимаем "подтвердить" и шьём root или самую свежую сборку кастомной прошивки, не задумываясь о том какие проблемы создаёт нам незаблокированный загрузчик. 

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

Интересующихся приглашаю под кат.

Читать далее
Total votes 98: ↑94 and ↓4+119
Comments210

Использование Conditional в Spring

Reading time5 min
Views68K

В этом материале я хочу описать очень полезную, и часто используемую аннотацию Conditional и интерфейс Condition.


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

Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments2

Большая подборка полезных ресурсов от экспертов Positive Technologies: от лаб и подкастов до блогеров и сообществ

Reading time10 min
Views23K

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

Сдаем все явки и пароли: делимся полезными ссылками на курсы и лабы, книги и подкасты, Telegram- и YouTube-каналы, форумы и блоги, которые наши крутые эксперты читают сами и рекомендуют тем, кто хочет держать руку на пульсе кибербеза и постоянно повышать свою ценность как профессионала. А может, наши подборки пригодятся вам при подготовке к собеседованию и помогут получить более высокую должность — кто знает 😉

Сегодня предлагаем погрузиться в тестирование на проникновение и проверку приложений на прочность, обнаружение и реверс вредоносных программ, киберразведку и расследование сложных инцидентов. Рассказываем, в какие методички заглядывают «белые шляпы», что помогает выйти на след APT-группировок и раскрутить цепочки хакерских атак, где первыми узнавать о новых подходах и техниках, используемых злоумышленниками. Добро пожаловать под кат!

Смотреть подборку
Total votes 12: ↑10 and ↓2+8
Comments1

Java CSP быстрый старт

Reading time8 min
Views17K

Если вы решили разрабатывать приложение на Java + maven, которое должно работать с отечественной криптографией, то эта статья для вас.

В статье рассказывается как создать приложение и подключить к нему JavaCSP для работы с ГОСТ-овой криптографией. В качестве примера мы создадим программу, показывающую все сертификаты в регистре.

Целевая аудитория junior/middle разработчики, которым требуется реализовать подписание/шифрование на базе отечественной криптографии. И которые до этого не имели опыта работы с Крипто Про.

Читать далее
Total votes 4: ↑3 and ↓1+3
Comments7

Основы Java Bytecode

Reading time29 min
Views30K

Внимание, статья содержит довольно много картинок и получилась довольно тяжелой и объемной

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

В данной статье будут рассмотрены только основы Java Bytecode. Если вы уже знакомы с его основами, статья вряд ли будет вам интересна.

Вглубь
Total votes 14: ↑14 and ↓0+14
Comments5

Как преобразовать любой тип Java Bean с помощью BULL

Reading time14 min
Views2.1K

BULL расшифровывается как Bean Utils Light Library, преобразователь, рекурсивно копирующий данные из одного объекта в другой. Он универсальный, гибкий, многоразовый, настраиваемый и невероятно быстрый.

Это единственная библиотека, способная преобразовывать изменяемые, неизменяемые и смешанные bean-компоненты без какой-либо пользовательской конфигурации.

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

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments5

Information

Rating
Does not participate
Location
Тюменская обл. и Ханты-Мансийский АО, Россия
Registered
Activity