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

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

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

Наиболее используемые шаблоны проектирования распределенных систем

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

Шаблоны проектирования распределенных систем предоставляют разработчикам проверенные решения и передовые методы проектирования и внедрения распределенных приложений.

Читать далее
Всего голосов 9: ↑6 и ↓3+3
Комментарии0

Начинаем в багбаунти: доступно об уязвимостях типа Broken Access Control

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

Привет, меня зовут Александр (aka bytehope). Прежде чем прийти к багхантингу, я пять лет занимался коммерческой разработкой. Однако меня всегда больше интересовал поиск уязвимостей, поэтому сейчас свое свободное время я провожу на площадках багбаунти.

Эту статью я решил посвятить уязвимостям, связанным с недостатками контроля прав (Broken Access Control). Вы узнаете, что это очень распространенный баг, который может проявляться самыми разными способами. Конечно, особый акцент будет сделан на практике: я покажу, как отловить четыре разных вида этой уязвимости в лабах Web Security Academy. Начнем с самых простых примеров, поэтому статья подойдет для начинающих охотников. Смело заглядывайте под кат!

Начнем хантить баги?
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Поиск ошибок в юнит-тестах

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

Вы должны были бороться с ошибками


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

Читать дальше →
Всего голосов 15: ↑15 и ↓0+20
Комментарии4

Предлагаю сделать интернациональный форк ядра Linux

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

Приветствую, всех!

Я думаю, многие не только на Хабре, читали ядреные новости о Linux и Open Source. Если кратенько, то из мейнтейнеров ядра Linux исключены русские программисты работающие в подсанкционных компаниях.

Читать далее
Всего голосов 117: ↑61 и ↓56+13
Комментарии267

Как сделать и настроить собственный VPN

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

В этой статье я подробно расскажу как оформить сервер и поднять свой VPN на протоколе VLESS с XTLS-Reality, который выделяется на общем плане тем, что трафик шифруется и маскируется под подключение к популярным сайтам (доменам), тем самым станет тёмной лошадкой для ТСПУ.

Читать далее
Всего голосов 34: ↑30 и ↓4+29
Комментарии56

Взлом паролей методом брутфорса, уязвимой машины в Kali GNU/Linux с hydra, medusa, ncrack — просто

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

Всех приветствую читатели Хабра!

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

Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях.

Автор статьи не несет ответственности за ваши действия.
Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей

Естественно для целей изучения указанного софта я и использую виртуальную машину у себя на своем личном компьютере, а не удаленный хост или сервер.
Моя основная система Kali GNU/Linux, цель моей атаки - виртуальная машина Metasploitable2-Linux. Вообще Metasploitable2-Linux была создана для тестирования на проникновения (пентест, белый хакинг) другого известного фреймворка - metasploit-framework. Но metasploit-framework я использовать в данном случае не буду, а буду пробовать атаковать уязвимый хост программами для брутфорса - hydra, medusa, ncrack.

Итак у нас имеются две задачи сейчас:

I "Поднять" уязвимую машину в virtual box, и настроить ее.
II Проэксплуатировать уязвимости машины.

Читать далее
Всего голосов 11: ↑9 и ↓2+9
Комментарии9

Почему важно оптимизировать формат данных

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

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

Алгоритмы — важнейшая часть программы: замена «горячего» алгоритма O(n) менее сложным, например, O(log n), обеспечивает практически произвольное увеличение производительности. Однако существенно влияет на производительность и структурированность данных: программы выполняются на физических машинах с физическими свойствами, например, разными задержками чтения/записи данных в кэши, на диски или в ОЗУ. После оптимизации алгоритмов стоит изучить эти свойства, чтобы достичь наибольшей производительности. Оптимизированный формат данных учитывает используемые алгоритмы и паттерны доступа при выборе того, как сохранять структуру данных на физическом носителе. Благодаря этому можно увеличить скорость алгоритмов в несколько раз. В этом посте мы покажем пример, в котором нам удалось достичь четырёхкратного повышения скорости чтения простым изменением формата данных в соответствии с паттерном доступа.

Сравнение хранилищ данных AoS и SoA


Современное оборудование, и, в частности CPU, спроектировано так, чтобы обрабатывать данные определённым образом. Расположение данных в памяти влияет на то, насколько эффективно программа сможет использовать кэш CPU, как часто она сталкивается с промахами кэша и насколько оптимально она сможет задействовать векторные команды (SIMD). Даже при использовании оптимальных алгоритмов выбор неподходящего формата данных может приводить к частым перезагрузкам кэша, простаивающим конвейерам и чрезвычайно большому объёму передач содержимого памяти; всё это снижает производительность.
Читать дальше →
Всего голосов 42: ↑42 и ↓0+57
Комментарии2

Что выгодней — свое железо или облако?

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

Привет, Хабр! Малый бизнес и крупные компании давно задаются вопросом: что выгоднее - облачные ресурсы или собственное оборудование? Облако кажется идеальным решением, но при более глубоком анализе не всё так однозначно, особенно в долгосрочной перспективе. Мы в ServerFlow провели сравнение наиболее популярных конфигураций в облаке и on-premise, отметили плюсы и минусы каждого из вариантов работы с оборудованием. Подробности - в статье!

Читать далее
Всего голосов 17: ↑15 и ↓2+16
Комментарии91

Атаки на веб-кэширование. Отравление кэша: теория и практика

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

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

В этой статье мы рассмотрим атаки обмана и отравления кэша, сконцентрировавшись на последнем: проследим историю возникновения и развития уязвимости, поговорим про кэш-движки и связанные с ними последние CVE. Также попробуем разобраться, как следует искать отравление кэша на реальных целях. Распишем методологию пентеста, оценим риски и последствия эксплуатации, обозначим общие подходы к защите.

Читать далее
Всего голосов 11: ↑11 и ↓0+15
Комментарии7

Шаблоны проектирования для баз данных

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

Существуют различные шаблоны проектирования облачных сервисов. Про тот же Sidecar или Ambassador, я думаю, слышали многие. Шаблоны предназначены для решения определенных задач и те два шаблона, о которых речь пойдет в сегодняшней статье, тоже нужны для конкретной задачи — работы с базами данных.

СУБД является неотъемлемой частью хоть сколько‑нибудь серьезного современного приложения. Соответственно, при проектировании приложения может возникнуть вопрос, как лучше сервисам взаимодействовать с базой данных: предоставляя общий доступ к одной базе или же у каждого микросервиса должна быть своя база данных. Мы рассмотрим два шаблона, предназначенных для решения данной задачи — это Shared database и Database per Microservice. Начнем с Shared database.

Читать далее
Всего голосов 20: ↑10 и ↓10+5
Комментарии9

Оконные функции простым языком — Фреймы

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

Привет всем!

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

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

P.S. Если автор что-то не разобрал и не написал, значит он посчитал это не обязательным в рамках этой статьи :-)

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

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии5

Почему нет достойных форматтеров кода для Java?

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

Форматирование кода в Java всегда было темой обсуждения среди разработчиков. Многочисленные инструменты предлагают свои решения, но ни один из них не кажется идеальным. Так, возникает вопрос: есть ли форматтер, который действительно отвечает всем нашим требованиям?

В новом переводе от команды Spring АйО рассмотрены популярные инструменты, их плюсы и минусы, а также рассуждения на тему: может ли Java-экосистема предложить достойный форматтер?

Читать далее
Всего голосов 29: ↑22 и ↓7+23
Комментарии21

PostgreSQL Antipatterns: устраняем вложенные интервалы

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

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

Но self-JOIN показал себя не лучшим образом...

Как сделать эффективнее?
Всего голосов 32: ↑31 и ↓1+36
Комментарии3

7 продвинутых приёмов JavaScript, которые должен знать каждый разработчик

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

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

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

Давайте разберём 7 продвинутых техник в JavaScript, которые помогут вам вывести свои навыки на новый уровень.

Читать далее
Всего голосов 31: ↑23 и ↓8+21
Комментарии10

Obsidian: синхронизация без боли

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

Легкий и простой способ настроить бесплатную синхронизацию Obsidian между всеми своими устройствами.

Читать далее
Всего голосов 35: ↑34 и ↓1+39
Комментарии142

Взлом JVM-приложения с помощью отладчика IntelliJ IDEA

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

Что если мы скажем вам, что отладчик может стать не просто инструментом для поиска ошибок, а настоящим «режимом бога» в мире кода? 

В новом переводе от команды Spring АйО рассматривается, как можно исследовать память приложения и изменить его функциональность, при этом не затрагивая исходного кода, а используя только лишь отладчик IntelliJ IDEA.

Читать далее
Всего голосов 30: ↑28 и ↓2+34
Комментарии4

Чистый код — дар или проклятие? Акт II. Компромисс

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

Что важнее — производительность или гибкость кода? Стоит ли отказаться от философии чистого кода ради перфоманса? Отвечаем на эти и многие другие вопросы вместе с командой разработчиков PVS-Studio.

Читать далее
Всего голосов 10: ↑7 и ↓3+9
Комментарии3

Уровни изоляции транзакций в БД

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

В этой статье обсудим, что из себя представляет изолированность транзакций в БД, какие есть уровни изоляции транзакций, как их установить, какие бывают аномалии на разных уровнях, и что такое MVCC. Естественно, всё на простых примерах.

Читать далее
Всего голосов 15: ↑14 и ↓1+18
Комментарии11

«Голая Java» или разработка без всего

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

Рассказываю что можно сделать на одном только голом JDK. Это старое и ныне почти забытое искусство разработки без внешних библиотек и фреймворков. Работать будем «как в былинные времена» — киркой и лопатой голыми руками и немного мозгом.

Читать далее
Всего голосов 73: ↑67 и ↓6+79
Комментарии107

Необычный зверь: графическая оболочка Desktop2 для MS-DOS

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

Привет, Хабр! Это Антон Комаров из МТС Диджитал. Сегодня снова немного ностальгии — поговорим о Desktop2.

Представьте, что на дворе середина 90-х. Вы щелкаете переключателем питания на своем ПК с процессором Intel 486DX2. Раздается жужжание шпинделя жесткого диска, дисковод весело подхрюкивает шаговым двигателем, а на дисплее появляется его величество MS-DOS. Просто черный экран и строка, куда можно вводить команды. Понятное дело, что на этом далеко не уедешь, поэтому у многих пользователей стоял какой-нибудь Norton Commander. А чтобы насладиться настоящим графическим интерфейсом, можно было приобрести одну из первых версий Windows — например, 3.11.

То время давно прошло, и вот только сейчас, изучая различные материалы в сети, я наткнулся на интересную графическую оболочку тех времен. Называлась она Desktop2 и была создана немецким программистом Феликсом Риттером (Felix Ritter) в 1998 году. Детали — традиционно под катом.

Читать далее
Всего голосов 44: ↑44 и ↓0+66
Комментарии117
1
23 ...

Информация

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

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

Software Developer, Backend Developer
Java
SQL
Hibernate
Docker
Kotlin
RxJava 2
C++