cookie

We use cookies to improve your browsing experience. By clicking «Accept all», you agree to the use of cookies.

avatar

Глубокое Видение

Советы для разработчиков ПО

Show more
Advertising posts
1 881
Subscribers
-2324 hours
-3507 days
-1 92730 days

Data loading in progress...

Subscriber growth rate

Data loading in progress...

Аутентификация и авторизация Наши приложения выполняют разные сценарии и для некоторых из них может быть важно, что за пользователь перед нами. То есть, для целей бизнес-логики может быть необходимо получить некоторые уникальные данные пользователя, которые позволят его отличить от других - это идентификация. Реализуется она различным способом: иногда мы можем явно спросить у пользователя, кто он, иногда мы получаем информацию из сетевых пакетов или системы. Идентификационные данные дальше могут использоваться по-разному: их можно записать в лог, использовать как ссылку на владельца при создании объектов в системе или в различных проверках внутри нашей логики. Идентификация должна выполняться безопасно: иногда пользователь может попытаться выдать себя за другого. Процесс проверки, что пользователь не обманывает нас в том, кто он - аутентификация. Она не всегда актуальна: если мы получили сообщение от telegram, мы можем верить информации об отправителе, потому что доверяем серверам телеграма. Однако, если мы получили HTTP запрос, мы должны принять меры для обеспечения защиты от подделки личности пользователя (аутентифицировать его). Когда пользователь первый раз обращается к нашему сайту, мы обычно отправляем его на сценарий входа (первичная аутентификация, login, sign in). Этот сценарий может быть достаточно сложным, состоять из нескольких шагов (например в случае двух- и многофакторной аутентификации), требовать использовании СУБД и внешних сервисов. Процедура входа скорее всего будет отделена от основной части приложения или даже реализовываться внешней системой (например, Keycloak). Иногда процедуру логина на сайт называют "авторизацией на сайте", но не следует это путать с авторизацией действий (см. ниже). В случае веб-приложений, после первичной аутентификации мы часто используем различные токены для того, чтобы в последующих действиях было проще его аутентифицировать. Проверка таких токенов связана с протоколом доставки, может задействовать базы данных и снова выполняется вне основной бизнес логики - адаптерами или отдельной подсистемой. В том числе, её иногда может выполнять реверс-прокси. Часто спустя какое-то время пользователя просят повторить процедуру входа. Многие операции в нашем приложении мы не хотим разрешать выполнять кому попало. Например, мы можем разрешить редактировать какой-то объект только его владельцу, а блокировать пользователей - админам. Проверка, разрешено ли выполнять какой-то сценарий пользователю - это авторизация, часть бизнес логики. Есть разные модели авторизации, связанные с проверкой роли пользователя (RBAC), отношений пользователя и объекта (ReBAC) или даже с какими данными объекта он работает (ABAC). Выбор того или иного варианты авторизации определяется требованиями вашей системы. С точки зрения архитектуры приложения • Идентификация выполняется для целей бизнес-логики или логирования, адаптеры помогают её реализовать. • Аутентификация не является частью основной бизнес-логики приложения, выполняется адаптерами или полностью отдельной частью логики. • Авторизация выполняется только бизнес-логикой, она не может быть корректно вынесена в слой представления, но может быть отделена от основной логики интерактора. Дополнительные материалыhttps://auth0.com/intro-to-iam/what-is-oauth-2https://www.cloudflare.com/learning/access-management/what-is-mutual-tls/https://owasp.org/Top10/A01_2021-Broken_Access_Control/
Show all...
Photo unavailableShow in Telegram
## Открой дверь в мир технологий с Технобутик! 🗝️ Технобутик - твой проводник в бескрайнюю вселенную: * 💫 Новейших технологий: будь в курсе последних разработок и инноваций. * 🌐 Интернет-культуры: погрузись в мир мемов, трендов и онлайн-сообществ. * 🧠 Умных нейросетей: узнай, как искусственный интеллект меняет нашу жизнь. * 🚀 И многого другого! Подписывайся и расширяй свои горизонты вместе с нами! ➡️ @Technobutik
Show all...
У ребят из Podlodka Python Crew стартует новый сезон онлайн-конференции, тема — инфраструктура. Всё проходит онлайн, с 3 по 7 июня. Я буду выступать там с докладом про Dependency Injection и dishka непосредственно. Все доклады записываются, так что смотреть их день в день необязательно. Что будет • Мой доклад про DI • Погружение в трейсинг: чем он полезен, как работает и как его внедрить. • Поиск уязвимостей: практические задания с разбором • Рассказ про неочевидные кейсы оптимизации. • Обучение эффективному мониторингу: типы метрик, как их собирать и экспортировать. И ещё много всего. Конференция платная, но специально для подписчиков промокод INFRA_17 на скидку 1000р
Show all...
Repost from N/a
Photo unavailableShow in Telegram
🔥 Погрузитесь в мир техно-новинок с каналом "THIL — Техно Импульс"! 🌐 От айтишного хайпа до киберпанка и всего, что связано с будущим технологий и виртуальной реальности — у нас есть всё. Присоединяйтесь к нам, чтобы оставаться в курсе самых свежих и захватывающих технологических трендов! ✨ Подписывайтесь и откройте для себя мир возможностей — @xTHILx
Show all...
Photo unavailableShow in Telegram
## 🔐 Гениальная Функция: Твой щит в цифровом мире Защити себя в интернете с помощью наших экспертных знаний! В Гениальной Функции ты найдешь: * 🔎 Исследования уязвимостей популярных сервисов * 🛡️ Советы по обеспечению IT-безопасности * 🧰 Полезные инструменты для защиты данных * 🧠 Экспертную информацию о киберугрозах * 🕵️ Расследования мошеннических схем Подписывайся на Гениальную Функцию и будь на шаг впереди киберпреступников! ➡️ @geniusfunction
Show all...
00:03
Video unavailableShow in Telegram
## 🍏 Ябломания | Apple 🍏 Твой главный источник информации о мире Apple! Здесь ты найдешь: * 📰 Горячие новости: будь в курсе всех событий и анонсов компании Apple. * 🔬 Подробные обзоры:  узнай все о новых iPhone, iPad, Mac и других устройствах. * 🤫 Интересные фишки и секреты:  открой для себя скрытые возможности техники Apple. * 👥 Активное сообщество:  общайся с другими фанатами Apple и делись своим опытом. Подписывайся и погрузись в мир Apple вместе с нами! ➡️ @YablomaniyaNews #реклама
Show all...
0.74 KB
Unit of work Паттерн Unit of work (единица работы) предназначен для того, чтобы следить за изменениями объектов и потом координировано их сохранять в базу данных. Это позволяет: • Ограничить время жизни транзакции • Не выполнять обращение к БД сразу при выполнении изменений, а значит попытаться сделать это более эффективно • Более удобно следить за изменениями в случае сложной иерархии или большого количества типов моделей. Принцип использования Unit of Work состоит из двух этапов: 1. Сначала мы регистрируем в нем, что с нашими моделями были изменения (register_new, register_dirty, register_deleted). 2. Затем в какой-то момент сохраняем все эти изменения в БД (commit) Изменения могут регистрировать как сами модели, так и прикладной код, использующий их. Таким образом, каждый раз, когда мы что-то делаем с моделями (добавляем, удаляем, изменяем), мы не отправляем сразу запрос в БД, а вместо этого добавляем эти изменения в UoW для последующего сохранения. Хотя Unit of Work имеет метод для коммита изменений, он является более сложной вещью чем просто управление транзакциями. Суть его в том, чтобы накапливать изменения перед отправкой в базу данных. При этом он может выполнять оптимизации запросов, например, объединяя вставку данных в одну таблицу в один запрос. Также, в нем может быть реализована логика контроля целостности данных, например, с помощью оптимистических блокировок. Сам Unit of work обращается в БД не напрямую, а через отдельные объекты, реализующие паттерн Data Mapper. Условно, в данном случае, каждый такой объект умеет отправлять в БД изменения (insert, update, delete) модели определенного типа и UoW знает в какой из мапперов обращаться для каждой из сохраненных моделей. Обратите внимание, что Unit of Work не используется для доступа к мапперам / шлюзам к БД, его задача другая. Более того, использование его в таком смысле будет нарушением принципа разделения интерфейсов. С концепциями Unit of Work и Data Mapper тесно связан паттерн Identity Map, когда мы храним реестр загруженных экземпляров моделей для их идентификаторов. И, хотя оба из них могут использоваться независимо друг от друга, хорошей идеей будет реализация Unit of Work, использующего IdM. Некоторые ORM, такие как SQLAlchemy, самостоятельно реализуют паттерн Unit of work: каждый экземпляр модели SQLAlchemy связана с объектом Session и её изменения записываются в базу данных в момент вызова session.flush()/session.commit(). Пример одной из возможных реализаций: https://github.com/Tishka17/python-uow-demo Дополнительные материалы:https://martinfowler.com/eaaCatalog/unitOfWork.htmlhttps://martinfowler.com/eaaCatalog/dataMapper.htmlhttps://techspot.zzzeek.org/2012/02/07/patterns-implemented-by-sqlalchemy/
Show all...
Photo unavailableShow in Telegram
🤖 Андроидер #1: Твой гид в мире Android Всё о самой популярной мобильной операционной системе! В нашем канале ты найдешь: * 🔥 Новости и обзоры последних Android-смартфонов и планшетов * 🔎 Секреты и лайфхаки для опытных пользователей * 🧰 Полезные приложения и игры * 🛡️ Советы по оптимизации и безопасности * 💬 Общение с другими энтузиастами Android Подписывайся на Андроидер #1 и стань экспертом в мире Android! ➡️ @androider
Show all...
Photo unavailableShow in Telegram
🚀 TechGPT News: Технологии и ИИ без лишних слов! 🤖 Новости, тренды, практическое применение. Будь в курсе будущего уже сегодня. 🗯 Подписывайся: @TechGPTNews
Show all...
00:30
Video unavailableShow in Telegram
🍏 В сети отыскали рекламу первого айфона в Россим — её сделал Билайн в далёком 2009 году. Осторожно, может захлестнуть волна воспоминаний! @GPTMainNews
Show all...
2.30 MB
Choose a Different Plan

Your current plan allows analytics for only 5 channels. To get more, please choose a different plan.