Как стать автором
Обновить
0
0
Максим Фениксов @Feniksovich

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

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

Регистрация и авторизация с помощью Spring Security на примере простого приложения

Время на прочтение21 мин
Количество просмотров308K
Добрый день!

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

Что будет представлять из себя приложение


Сайт со следующими страницам:

  • страницы доступные всем пользователям: главная, регистрации и логина;
  • страница доступная для зарегистрированных пользователей: новости;
  • страница доступная для администратора.

Что будем использовать


  • JDK 8+;
  • Intellij Idea;
  • Spring (Spring Boot, Spring MVC, Spring Security);
  • Hibernate;
  • JSP;
  • PostgreSQL.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+8
Комментарии10

Мониторинг простыми словами, или как я объяснил маме работу SRE

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

Несмотря на то, что я не единственный айтишник в семье, объяснить свою профессию выходило немного накладно. "Что такое SRE? Как сис.админ что ли? А в чем разница-то?". И ведь действительно, с учетом того, что в РФ границы между теми же DevOps и SRE размыты, а на должность системного администратора ищут чернокнижника с опытом стабилизации прода, неудивительно, что человек и вовсе не связанный с этой сферой может запутаться.

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

Создание Git-коммита: The Hard Way

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

Мы постоянно используем высокоуровневые команды git, такие как git add и git commit. Однако также существует другая группа команд git, которые обрабатывают низкоуровневые операции.

В этой статье мы создадим git‑коммит, используя низкоуровневые операции, а не команду git commit.

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

Как настроить автодополнение для команды ssh с хостами из .ssh/config

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

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

Читать далее
Всего голосов 26: ↑24 и ↓2+28
Комментарии16

REDIS: такой простой и такой сложный

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

Меня зовут Андрей Комягин, я СТО компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей и в своей работе широко используем open-source решения, в том числе СУБД Redis. Недавно я подробно рассказывал об этой системе на конференции Saint HighLoad++, а теперь с удовольствием поделюсь основной информацией с читателями Хабра. Итак, поехали.

Читать далее
Всего голосов 36: ↑36 и ↓0+42
Комментарии12

Зачем в iPhone чип, который убивает FaceID

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

Разбирался я в низкоуровневой работе камер iPhone, и дошёл до FaceID — системы распознавания лиц, используемой Apple для разблокировки смартфона. И наткнулся внутри на интересную вещь: чип, единственное предназначение которого в том, чтобы вывести из строя FaceID. Навсегда.

О том, как в iPhone вообще работает FaceID, где там этот чип стоит, что именно он делает, зачем его сделали таким злым, и как в ремонте справляются с этой напастью — под катом!

Читать далее
Всего голосов 553: ↑552 и ↓1+656
Комментарии152

Идемпотентность: больше, чем кажется

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

image


Друзья, всем привет! Идемпотентность в проектировании API — не просто формальность. Это свойство, часто рассматриваемое как способ получения одинакового ответа на повторяющийся запрос, на самом деле означает гораздо больше...

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

Let me teach you the ancient method of Fu Thai! Гнев и ненависть брутфорсеров в 2023 году

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

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

Задавшись этим вопросом, я решил повторить эксперимент, сделав из выделенного сервера «ловушку» для всяких плохих ребят. В статье рассказываю, какие интерфейсы привлекают взломщиков, можно ли спрятаться на нестандартном порту и что будет, если оставить пароль по умолчанию. Под кат стоит провалиться хотя бы ради собранной статистики.
Читать дальше →
Всего голосов 88: ↑88 и ↓0+88
Комментарии16

find + mkdir полны по Тьюрингу

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

Введение

Мы покажем, что система, имеющая лишь команды GNU find и mkdir, полна по Тьюрингу.

Хорошо известно, что команды sed и awk сами по себе полны по Тьюрингу, но мне не удалось найти информации о Тьюринг-полноте find + mkdir.

Доказательство основано на реализации таг-системы.

Мы по порядку рассмотрим реализацию цикла, FizzBuzz и таг-системы.

Читать далее
Всего голосов 52: ↑52 и ↓0+75
Комментарии21

htop и многое другое на пальцах

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


На протяжении долгого времени я не до конца понимал htop. Я думал, что средняя загрузка [load average] в 1.0 означает, что процессор загружен на 50%, но это не совсем так. Да и потом, почему именно 1.0?

Затем я решил во всём разобраться и написать об этом. Говорят, что лучший способ научиться новому — попытаться это объяснить.
Читать дальше →
Всего голосов 138: ↑130 и ↓8+122
Комментарии43

Как работает протокол HLS

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

Вот уже несколько недель я разрабатываю серверную поддержку коротких видео для компании Bluesky.

Основное назначение этой фичи – обеспечивать потоковый показ небольших (максимум 90 секунд) видеороликов. Показ должен быть бесплатным и при этом не слишком накладным для нас.

Чтобы укладываться в эти ограничения, мы попытались использовать сеть доставки видео-контента (CDN), которая могла бы нести основное бремя поддержки той полосы передачи данных, которая обеспечивала бы показ потокового видео по требованию.

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

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

Получение TOTP-токенов на умнейших из тупых часов

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

Недавно получил свой заказ с новой логической платой от Sensor Watch для вездесущих классических часов Casio F-91W. Модель F-91W не требует представления. Это наверняка самые популярные кварцевые часы в мире, которых в общей сложности было продано около 90 миллионов.

В купленной мной плате Sensor Watch оригинальный кварцевый механизм F-91W заменён новым мозгом на базе ARM Cortex M0+. В ней используются оригинальный ЖК-дисплей, толкатели для кнопок и пьезодинамик. Эта программируемая плата, и проект Sensor Watch также предоставляет простой в плане модификаций набор циферблатов и небольшие дополнительные приложения.

В устройстве нет Bluetooth, но комбинация легковесного, проверенного временем корпуса с долгоживущей батареей и функциональностью, которую без проблем можно воссоздать дома, на удивление великолепна. Где-то за час я смог: заменить плату, настроить двухфакторную аутентификацию (2FA) для своих аккаунтов Google и GitHub, чтобы получать наиболее часто используемые OTP-коды прямо на своё запястье, и написать циферблат-счётчик, который можно использовать для отсчёта шагов или взмахов при гребле на лодке.
Читать дальше →
Всего голосов 42: ↑41 и ↓1+58
Комментарии22

Запросы и лимиты в Kubernetes: разбираемся в деталях

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

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

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

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

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

Читать далее
Всего голосов 25: ↑21 и ↓4+33
Комментарии8

Выявление bidirectional unicode троянов

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

Двое специалистов в своей довольно старой публикации Trojan Source: Invisible Vulnerabilities описали одну из интересных атак, суть которой заключается в следующем: при просмотре исходного кода вы видите одно, но при компиляции в конечном приложении будет реализована совсем другая логика. Суть атаки проста: не все редакторы кода отображают unicode символы и рецензенты кода их попросту не увидят. Для реализации атаки необходимо использовать определенные символы в кодировке unicode, которые заставляют компилятор читать исходный код в другом направлении либо вызывать совсем другие функции.

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

Вы нас просили и мы сделали. VPN на собственном сервере с XRay Reality за 5 минут с помощью Amnezia

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

Всем привет! Это команда Amnezia. 

Мы читаем комментарии под нашими постами и знаем, что один из самых частых вопросов – когда будет XRay? Так вот, мы добавили XRay в приложение AmneziaVPN, а точнее протокол Reality от XRay для всех платформ -  IOS, Android, Windows, Linux и MacOS. Если у вас еще нет последнего релиза, скорее скачивайте и создавайте VPN на собственном сервере в пару кликов с одним из самых защищенных и быстрых протоколов в мире, ниже мы немного о нем расскажем, а в конце статьи будет пошаговая  инструкция как это сделать.

Почему XRay Reality так популярен ?

Все дело в том, что Reality подходит для стран с самым высоким уровнем интернет-цензуры, сейчас его используют в Китае и Иране, он защищен от детектирования методами active probing. 

Распознать цензоров REALITY может еще на этапе TLS-хендшейка. Если REALITY видит, что к нему приходит его клиент, то сервер запускает для него VPN туннель, а если приходит любой другой запрос на 443 порт, то TLS-подключение передается на какой-нибудь другой реальный сайт, например, google.com, где цензор получит настоящий TLS-сертификат от google.com и вообще все настоящие данные с этого сайта.

Со стороны систем анализа трафика это выглядит как подключение к настоящему сайту, сервер отдает настоящий TLS-сертификат этого сайта, и вообще все (включая TLS fingerprint сервера) выглядит очень по-настоящему и не вызывает подозрений. 

Особенно приятно, что при этом производительность REALITY и скорость подключения у протокола действительно хороши, в сравнении, например, со связкой OpenVPN over Cloak.

Читать далее
Всего голосов 151: ↑147 и ↓4+166
Комментарии137

Как синхронизировать потоки в Java

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

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

Всё начинается с потребности в быстродействии и масштабируемости. C несколькими потоками можно обрабатывать больше операций одновременно.

В этой статье мы рассмотрим, как синхронизировать потоки в Java.

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

Как сломать сисадмина

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров34K
На планете Шелезяка всё было просто: злодей подсыпал алмазную пыль в маслёнки, и вот уже роботы выведены из строя и подают сигналы бедствия. На планете Земля, в душных и кондиционированных офисах, на производствах и в больницах, на удалёнке и в серверной злые и порой недалёкие пользователи делают больно иначе: доводят системных администраторов до белого каления своими действиями и без алмазной пыли. А потом, когда уже всё работает, не то что шоколадку выпить — спасибо не услышишь! День системного администратора — самое время войти в чертоги коварства, разобраться в приёмах злодеев и спокойно пойти отмечать день, разрывая на груди футболку за свитч и разделение прав доступа.


Итак, 12 верных способов сломать сисадмина.
Читать дальше →
Всего голосов 56: ↑52 и ↓4+62
Комментарии35

Разбор CrowdStrike Falcon: общая архитектура системы, взаимодействие сенсора с Windows и описание ошибки драйвера

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

Привет, Хабр! Меня зовут Анастасия Гаранжа, я аналитик SOC в МТС RED и разбираю много разных инцидентов ИБ. 19 июля 2024 года многие из нас проснулись и увидели новости, что Windows сломался, и все очень плохо. Новость тут же подхватили далекие от ИТ паблики. В образовавшемся шуме практически невозможно понять, что же произошло. Чтобы показать, как такой массовый сбой стал возможен, я пройду от общих моментов построения систем до конкретных нюансов сбоя.

Расскажу, почему некоторые программы загружают свои драйверы одновременно с операционной системой, кому Microsoft позволяет это делать, к чему приводят недопустимые данные в маленьком файлике и как он попадает пользователям в обход тестов и проверок. Спасет ли в такой ситуации Linux и другие подробности — под катом.

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

Кратко про сетевые протоколы в Golang: TCP, QUIC и UDP

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

Сегодня мы кратко рассмотрим то, как реализовать такие протколы, как TCP, UDP и QUIC в Golang.

Начнем с TCP.

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

Выстраиваем процессы команд разработки: кейс и практические рекомендации

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

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

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

Читать далее
Всего голосов 20: ↑19 и ↓1+22
Комментарии3
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

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

Backend Developer
Intern
Git
Nginx
Linux
Docker
Java
High-loaded systems
Redis
MongoDB
RabbitMQ
Java Spring Framework