This media is not supported in your browser
VIEW IN TELEGRAM
К слову, почему за последнюю неделю делаю мало постов)) Но сегодня ждите интересную тему)
😁3🐳1
ЗАДАЧА:
На вход подается число в диапазоне [-2³¹;2³¹-1]. Нужно вернуть целое число, перевернув цифры в обратном порядке с сохранением знака(+/-). Если результат выходит за указанный диапазон, вернуть 0. (решение оставляем в комментарии)
Пример 1:
INPUT: x = 123456
OUTPUT: 654321
Пример 2:
INPUT: -5670
OUTPUT: -765
Пример 3:
INPUT: -2 147 483 648
OUTPUT: 0
На вход подается число в диапазоне [-2³¹;2³¹-1]. Нужно вернуть целое число, перевернув цифры в обратном порядке с сохранением знака(+/-). Если результат выходит за указанный диапазон, вернуть 0. (решение оставляем в комментарии)
Пример 1:
INPUT: x = 123456
OUTPUT: 654321
Пример 2:
INPUT: -5670
OUTPUT: -765
Пример 3:
INPUT: -2 147 483 648
OUTPUT: 0
Всем привет.
Давайте, для начала, разберемся в понятиях аутентификации, авторизации и идентификации.
1. Идентификация: Этот процесс определяет, кем пользователь является. Например, когда вы вводите свое имя пользователя на сайте.
2. Аутентификация: Этот процесс проверяет подлинность пользователя. Например, после того как вы ввели свое имя пользователя на сайте, вам может потребоваться ввести пароль для подтверждения вашей личности.
3. Авторизация: Этот процесс определяет, к каким ресурсам или функциям приложения пользователь имеет доступ. Например, после успешной аутентификации вы можете получить доступ к своему личному кабинету на сайте, но не иметь доступа к административным функциям.
Итак, чтобы сделать пример более ясным, предположим, что вы заходите на сайт (идентификация), вводите свой логин и пароль (аутентификация), и после этого получаете доступ к своему аккаунту с возможностью просмотра информации о заказах, но не имеете права редактировать их (авторизация).
Давайте, для начала, разберемся в понятиях аутентификации, авторизации и идентификации.
1. Идентификация: Этот процесс определяет, кем пользователь является. Например, когда вы вводите свое имя пользователя на сайте.
2. Аутентификация: Этот процесс проверяет подлинность пользователя. Например, после того как вы ввели свое имя пользователя на сайте, вам может потребоваться ввести пароль для подтверждения вашей личности.
3. Авторизация: Этот процесс определяет, к каким ресурсам или функциям приложения пользователь имеет доступ. Например, после успешной аутентификации вы можете получить доступ к своему личному кабинету на сайте, но не иметь доступа к административным функциям.
Итак, чтобы сделать пример более ясным, предположим, что вы заходите на сайт (идентификация), вводите свой логин и пароль (аутентификация), и после этого получаете доступ к своему аккаунту с возможностью просмотра информации о заказах, но не имеете права редактировать их (авторизация).
👍5🔥1
Аутентификация по паролю - пользователь предоставляет username и password.
Существует несколько стандартных схем данного типа аутентификации:
1) Basic - username и password передаются в заголовке Authorization в виде base64-encoded (является сравнительно безопасным способом
только при использовании HTTPS)
2) Digest - сервер передает уникальное значение nonce,
а браузер передает MD5 хэш пароля пользователя, вычесленный с использованиемданного nonce (более защищена при использовании http,
но уязвима перед атакой с заменой схемы на basic и неподдерживает использование современных хэш-функций
для хранения пароля пользователя на сервере).
3) NTLM - пароль не передается в чистом виде. В основном используется
в Active Directory.
4) Negotive - позволяет клиенту выбрать между NTLM и Kerberos аутентификацией.
Может функционировать, только если и клиент, и сервер находятся в зоне intranet и являются частью домена Windows.
Существует несколько стандартных схем данного типа аутентификации:
1) Basic - username и password передаются в заголовке Authorization в виде base64-encoded (является сравнительно безопасным способом
только при использовании HTTPS)
2) Digest - сервер передает уникальное значение nonce,
а браузер передает MD5 хэш пароля пользователя, вычесленный с использованиемданного nonce (более защищена при использовании http,
но уязвима перед атакой с заменой схемы на basic и неподдерживает использование современных хэш-функций
для хранения пароля пользователя на сервере).
3) NTLM - пароль не передается в чистом виде. В основном используется
в Active Directory.
4) Negotive - позволяет клиенту выбрать между NTLM и Kerberos аутентификацией.
Может функционировать, только если и клиент, и сервер находятся в зоне intranet и являются частью домена Windows.
👍7
Аутентификация по одноразовым паролям - обычно используется в дополнении к аутентификации по паролю при реализации двух факторной аутентификации (2FA).
При данном способе пользователь предоставляет данные двух типов: то, что он знает(пароль) и чем он владеет( телефон, электронный ключ и т.д.).
Также данный тип аутентификации используется при переводе денег или изменении настроек.
Разберём какие есть источники для создания одноразового пароля:
- использование токенов, генерирующих пароль по секретному ключу, хранящемуся на сервере и текущему времени.
Например RSA SecurID, Google authenticator.
- случайно генерируемые коды, передаваемые по sms.
- распечатка со списком заранее сформированных паролей. При каждом новом входе необходимо вводить новый пароль.
Обычно данный тип аутентификации расширяет Forms auth. После Ворда пароля создаётся сессия, но в рамках данной сессии пользователь не будет иметь доступ к приложению пока не произведет доп. аутентификацию по одноразовом у паролю.
При данном способе пользователь предоставляет данные двух типов: то, что он знает(пароль) и чем он владеет( телефон, электронный ключ и т.д.).
Также данный тип аутентификации используется при переводе денег или изменении настроек.
Разберём какие есть источники для создания одноразового пароля:
- использование токенов, генерирующих пароль по секретному ключу, хранящемуся на сервере и текущему времени.
Например RSA SecurID, Google authenticator.
- случайно генерируемые коды, передаваемые по sms.
- распечатка со списком заранее сформированных паролей. При каждом новом входе необходимо вводить новый пароль.
Обычно данный тип аутентификации расширяет Forms auth. После Ворда пароля создаётся сессия, но в рамках данной сессии пользователь не будет иметь доступ к приложению пока не произведет доп. аутентификацию по одноразовом у паролю.
🔥4💊1
Продолжим говорить про аутентификацию. На очереди JWT.
JWT (JSON Web Token) - это стандарт для передачи информации между двумя сторонами в виде JSON объекта. JWT токены состоят из трех частей: заголовка (header), полезной нагрузки (payload) и подписи (signature).
1. Заголовок (header) содержит информацию о типе токена и используемом алгоритме шифрования.
2. Полезная нагрузка (payload) содержит данные, которые нужно передать между сторонами, например, идентификатор пользователя или другую информацию.
3. Подпись (signature) создается с использованием секретного ключа и позволяет проверить целостность токена.
JWT токены часто используются для аутентификации и авторизации пользователей в веб-приложениях. После успешной аутентификации пользователю выдается JWT токен, который он может передавать при каждом запросе на сервер для подтверждения своей личности. Сервер может проверить подпись токена и декодировать полезную нагрузку, чтобы получить доступ к информации о пользователе.
JWT (JSON Web Token) - это стандарт для передачи информации между двумя сторонами в виде JSON объекта. JWT токены состоят из трех частей: заголовка (header), полезной нагрузки (payload) и подписи (signature).
1. Заголовок (header) содержит информацию о типе токена и используемом алгоритме шифрования.
2. Полезная нагрузка (payload) содержит данные, которые нужно передать между сторонами, например, идентификатор пользователя или другую информацию.
3. Подпись (signature) создается с использованием секретного ключа и позволяет проверить целостность токена.
JWT токены часто используются для аутентификации и авторизации пользователей в веб-приложениях. После успешной аутентификации пользователю выдается JWT токен, который он может передавать при каждом запросе на сервер для подтверждения своей личности. Сервер может проверить подпись токена и декодировать полезную нагрузку, чтобы получить доступ к информации о пользователе.
❤3
Расставьте правильно последовательность JWT авторизации. Ответ пишите в комментариях.
1. Веб-приложение проверяет JWT-токен и если он верный, то выполняет действие от имени авторизованного пользователя.
2. Веб-приложение проверяет логин и пароль, и если они верны, то генерирует JWT-токен и отправляет его веб-браузеру.
3. Веб-браузер сохраняет JWT-токен и отправляет его вместе с каждым запросом в веб-приложение.
4. При генерации JWT-токена веб-приложение ставит подпись секретным ключом, который хранится только в веб-приложении.
5. Веб-браузер отправляет запрос веб-приложению с логином и паролем.
1. Веб-приложение проверяет JWT-токен и если он верный, то выполняет действие от имени авторизованного пользователя.
2. Веб-приложение проверяет логин и пароль, и если они верны, то генерирует JWT-токен и отправляет его веб-браузеру.
3. Веб-браузер сохраняет JWT-токен и отправляет его вместе с каждым запросом в веб-приложение.
4. При генерации JWT-токена веб-приложение ставит подпись секретным ключом, который хранится только в веб-приложении.
5. Веб-браузер отправляет запрос веб-приложению с логином и паролем.
❤4
Правильный ответ:
5 (2 4) 3 1.
2 и 4 происходят за один процесс.
2 и 4 происходят за один процесс.
👌3💩1🤡1
Структура авторизации JWT:
1. Пользователь вводит свои учетные данные (например, логин и пароль) на клиентской стороне.
2. Клиент отправляет запрос на сервер с учетными данными для аутентификации.
3. Сервер проверяет учетные данные и, если они верные, создает JWT (JSON Web Token) с уникальным идентификатором пользователя и другой информацией.
4. Сервер отправляет JWT обратно клиенту.
5. Клиент сохраняет JWT (обычно в localStorage или в памяти) для последующих запросов.
6. При каждом запросе к защищенным ресурсам, клиент отправляет JWT в заголовке Authorization.
7. Сервер проверяет подлинность JWT и, если токен действителен, разрешает доступ к защищенным ресурсам.
8. При истечении срока действия JWT, клиент должен повторно авторизоваться для получения нового токена.
1. Пользователь вводит свои учетные данные (например, логин и пароль) на клиентской стороне.
2. Клиент отправляет запрос на сервер с учетными данными для аутентификации.
3. Сервер проверяет учетные данные и, если они верные, создает JWT (JSON Web Token) с уникальным идентификатором пользователя и другой информацией.
4. Сервер отправляет JWT обратно клиенту.
5. Клиент сохраняет JWT (обычно в localStorage или в памяти) для последующих запросов.
6. При каждом запросе к защищенным ресурсам, клиент отправляет JWT в заголовке Authorization.
7. Сервер проверяет подлинность JWT и, если токен действителен, разрешает доступ к защищенным ресурсам.
8. При истечении срока действия JWT, клиент должен повторно авторизоваться для получения нового токена.
❤🔥3
OAuth 2.0 - это протокол авторизации, который позволяет пользователям предоставлять доступ к своим данным на сторонних сайтах без необходимости передачи своих учетных данных (логин и пароль). Вместо этого, пользователь авторизует приложение на стороннем сайте через OAuth 2.0, чтобы приложение могло получить доступ к данным пользователя.
Процесс работы OAuth 2.0 выглядит примерно так: пользователь переходит на сторонний сайт, где требуется авторизация через OAuth 2.0. Пользователь вводит свои учетные данные на сайте, а затем сайт предоставляет ему токен доступа. Этот токен передается приложению, которое хочет получить доступ к данным пользователя. Приложение использует токен для запроса доступа к данным пользователя на стороннем сайте.
Примером такой авторизации может служить авторизация через Google или ВК.
Процесс работы OAuth 2.0 выглядит примерно так: пользователь переходит на сторонний сайт, где требуется авторизация через OAuth 2.0. Пользователь вводит свои учетные данные на сайте, а затем сайт предоставляет ему токен доступа. Этот токен передается приложению, которое хочет получить доступ к данным пользователя. Приложение использует токен для запроса доступа к данным пользователя на стороннем сайте.
Примером такой авторизации может служить авторизация через Google или ВК.
🔥5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда не совсем понял что такое наследование☝️
Всем привет.
На этой и следующей неделе тренируем SQL.
Всем привет.
На этой и следующей неделе тренируем SQL.
🤣4🔥2
Всем привет.
Повторяем теорию по SQL или сразу задачки?)
Повторяем теорию по SQL или сразу задачки?)
Anonymous Poll
80%
Сначала теория
20%
Сразу задачи
🔥5
Для начала давайте вспомним основные команды SQL для работы с данными.
1. SELECT - используется для выбора данных из базы данных.
Например:
SELECT * FROM table_name;
- выберет все данные из таблицы.
2. INSERT INTO - используется для добавления новых строк в таблицу.
Например:
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
- добавит новую строку в таблицу с указанными значениями.
3. UPDATE - используется для обновления существующих записей в таблице.
Например:
UPDATE table_name SET column1 = value1 WHERE condition;
- обновит значение column1 в таблице, удовлетворяющем условию.
4. DELETE - используется для удаления записей из таблицы. Например:
DELETE FROM table_name WHERE condition;
- удалит записи из таблицы, удовлетворяющие условию.
5. WHERE - используется для фильтрации результатов по заданному условию.
Например:
SELECT * FROM table_name WHERE column1 = value;
- выберет только те строки, где column1 равен заданному значению.
6. JOIN - используется для объединения данных из двух и более таблиц на основе связанных столбцов.
Например:
SELECT * FROM table1 JOIN table2 ON table1.column = table2.column;
- объединит данные из двух таблиц на основе совпадения значений в столбцах.
7. GROUP BY - используется для группировки результатов по определенному столбцу.
Например:
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
- сгруппирует данные по значениям в столбце column1 и посчитает количество строк в каждой группе.
8. ORDER BY - используется для сортировки результатов по заданному столбцу.
Например:
SELECT * FROM table_name ORDER BY column1 DESC;
- отсортирует данные по столбцу column1 в порядке убывания.
1. SELECT - используется для выбора данных из базы данных.
Например:
SELECT * FROM table_name;
- выберет все данные из таблицы.
2. INSERT INTO - используется для добавления новых строк в таблицу.
Например:
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
- добавит новую строку в таблицу с указанными значениями.
3. UPDATE - используется для обновления существующих записей в таблице.
Например:
UPDATE table_name SET column1 = value1 WHERE condition;
- обновит значение column1 в таблице, удовлетворяющем условию.
4. DELETE - используется для удаления записей из таблицы. Например:
DELETE FROM table_name WHERE condition;
- удалит записи из таблицы, удовлетворяющие условию.
5. WHERE - используется для фильтрации результатов по заданному условию.
Например:
SELECT * FROM table_name WHERE column1 = value;
- выберет только те строки, где column1 равен заданному значению.
6. JOIN - используется для объединения данных из двух и более таблиц на основе связанных столбцов.
Например:
SELECT * FROM table1 JOIN table2 ON table1.column = table2.column;
- объединит данные из двух таблиц на основе совпадения значений в столбцах.
7. GROUP BY - используется для группировки результатов по определенному столбцу.
Например:
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
- сгруппирует данные по значениям в столбце column1 и посчитает количество строк в каждой группе.
8. ORDER BY - используется для сортировки результатов по заданному столбцу.
Например:
SELECT * FROM table_name ORDER BY column1 DESC;
- отсортирует данные по столбцу column1 в порядке убывания.
🔥3❤1👍1