По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Операционная система Microsoft Windows невероятно распространена и каждому администратору приходится с ней сталкиваться. Поэтому мы решили собрать список основных команд для командной строки CMD которые пригодятся при настройке и траблшутинге сети. Команды CMD Ping - Конечно же пинг! Самая используемая утилита, отправляющая ICMP пакеты для проверки доступности узла на другой стороне. Показывает ответы, время за которое пакеты были доставлены и TTL (Time To Live), а по окончанию показывает статистику. По умолчанию высылается 4 пакета, и увеличить их количество можно добавив в строку –n число_пакетов, либо запустив непрерывный пинг набрав –t. Помимо этого есть параметр –l размер_пакета, позволяющий изменить размер отправляемого пакета. Пример: ping 192.168.1.1 -t Подробную информацию обо всех параметрах, которые можно использовать с командой можно узнать, введя /? после самой команды. Это работает и для других команд. ping /? Tracert - Trace route как и ping позволяет определить доступность удаленного узла, однако она отображает в выводе все маршрутизаторы, через которые проходил пакет. При выполнении этой команды высылается ICMP пакет, с TTL=1, и после того как первый маршрутизатор отбросит пакет, будет выслан пакет с TTL увеличенным на 1, и так далее, пока не будет достигнет пункт назначения, либо пока TTL не станет равным 30. Пример: tracert wiki.merionet.ru Pathping - Эта команда аналогично команде tracert выполняет трассировку, дополнительно показывая статистику по задержкам и потерям на промежуточных узлах. Пример: pathping www.merionet.ru Ipconfig - Эта команда отображает текущие настройки протокола TCP/IP – IP адрес, маску, шлюз. Для отображения полной информации сетевого адаптера нужно добавить после команды параметр /all – теперь можно узнать mac-адрес, адрес DHCP сервера и многое другое. Для просмотра всех ключей можно воспользоваться параметром /?. Так же могут быть полезными параметры /release для отмены сетевых настроек, полученных по DHCP, /renew для обновления конфигурации сетевого адаптера по DHCP и /flushdns для очистки DNS кэша. ipconfig /all Getmac – эта команда используется для определения MAC-адреса компьютера. Использование этой команды отображает MAC-адрес сетевых адаптеров устройства. Nslookup - Name Server Lookup. Используется для того чтобы определить IP-адрес по доменному имени. Пример: nslookup www.merionet.ru Netstat – эта команда показывает состояние входящих и исходящих TCP соединений. Если мы используем команду с параметром –r, то она выведет нам таблицы маршрутизации, а использовав параметр –s мы получим статистику по протоколам Netsh – Net Shell, сетевая оболочка. Используется для локальной или удаленной настройки сетевых параметров. После ввода команды строка переходит в режим оболочки, внутри которой можно ввести /? и увидеть все доступные настройки. Внутри каждой команды таким способом можно посмотреть список доступных подкоманд. Возможности этой команды действительно обширны. Мы можем при помощи нее конфигурировать ip-адреса, маски, шлюзы, dns и wins сервера, включать и отключать сетевые интерфейсы, просматривать сетевые настройки, а также сохранять и восстанавливать конфигурацию сетевых интерфейсов Например, мы можем указать статический адрес для интерфейса: netsh interface ip set address local static 192.168.1.10 255.255.255.0 Net view – отображает имена компьютеров в текущем домене Arp – команда для просмотра записей в arp таблице. Для просмотра текущих записей используется ключ –a. Для удаления записи из таблицы используется ключ –d интернет_адрес [адрес_интерфейса] . Если нужно удалить все записи, то вместо адреса нужно поставить звездочку (*). Пример: arp - a Hostname – показывает имя компьютера. NbtStat - отображение статистики протокола и текущих подключений TCP/IP с помощью NBT (NetBIOS через TCP/IP). Route – команда для обработки таблиц сетевых маршрутов. Показывает текущую таблицу, имеется возможность добавлять и удалять маршруты. Чтобы вывести все содержимое таблицы маршрутизации нужно набрать команду route print. Telnet – клиент сервера Telnet для подключения к удаленным хостам. Внимание: по умолчанию telnet не установлен. Чтобы установить его из командной строки нужно выполнить команду pkgmgr /iu:"TelnetClient" Для подключения используем команду так: telnet ip-адрес порт Пример: telnet 192.168.1.20 5150 Также эту команду можно использовать для проверки доступности порта на узле – если команда выдает ошибку, то значит порт закрыт, а если появляется приглашение или окно становится пустым – то открыт. На этом все! Мы что-то упустили или вы хотите о чем-то прочитать поподробнее? Напишите об этом в комментариях.
img
Первая часть статьи доступна по ссылке: Базовая настройка коммутатора Cisco - часть 1 Защита доступа в пользовательском режиме с помощью локальных имен пользователей и паролей Коммутаторы Cisco поддерживают два других метода безопасного входа, которые используют пары имя пользователя / пароль вместо общего пароля без ввода имени пользователя. Первый метод, использует ввод локального имени пользователя и пароля. Происходит настройка пары имя пользователя / пароль локально-то есть в конфигурации коммутатора. Коммутаторы поддерживают режим локального имени пользователя / пароля для входа по консоли, по Telnet и даже по SSH, но не изменяют пароль от привилегированного режима (enable), используемый для входа в режим enable. Настройки для перехода от использования простых общих паролей к использованию локальных имен пользователей/паролей требует лишь небольших изменений конфигурации, как показано на рис.3. На рисунке показаны два ПК, пытающиеся получить доступ к пользовательскому режиму. Один из ПК подключен по консольному кабелю в пользовательский режим через линию console 0, а другой ПК по Telnet, соединяющийся через терминальные линии vty 0 15. Оба ПК не имеют паролей для входа, и задано имя пользователя для обоих ПК - " local." На рисунке в Пользовательском режиме используется две команды: 1- username ulanbaby secret box 2- username landy secret box Глядя на настройки на рисунке, видно, во-первых, коммутатору, необходимо задать пару имя пользователя/пароль. Для их создания, в режиме глобальной конфигурации, введите команду создания имени пользователя и зашифрованного пароля -username <имя пользователя> secret <пароль>. Затем, чтобы включить тип безопасности входа с проверкой логина (имени пользователя ) по консоли или Telnet, просто добавьте команду login local. По сути, эта команда означает " использовать локальный список имен пользователей для входа в систему." Вы также можете использовать команду no password, чтобы очистить все оставшиеся команды паролей из консоли или режима vty, потому что эти команды не нужны при использовании локальных имен пользователей и паролей. Ниже подробно описаны шаги для настройки доступа к к коммутатору с использованием логина и пароля: Шаг 1. В режиме глобальной конфигурации используйте команду username <имя пользователя > secret <пароль>, чтобы создать одну или несколько пар имя пользователя/пароль в локальной базе коммутатора. Шаг 2. Настройте консоль на использование пар имя пользователя / пароль из локальной базы коммутатора: используйте команду line con 0 для входа в режим конфигурации консоли. используйте подкоманду login local, чтобы разрешить коммутатору запрашивать имя пользователя и пароль, совпадающие со списком локальных имен пользователей/паролей. (необязательно) используйте подкоманду no password для удаления всех существующих простых общих паролей, просто для оптимизации конфигурации. Шаг 3. Настройте Telnet (vty) для использования пар имя пользователя / пароль из локальной базы коммутатора: 1. используйте команду line vty 0 15 для входа в режим конфигурации vty для всех 16 терминальных линий vty (пронумерованных от 0 до 15). 2. используйте подкоманду login local, чтобы разрешить коммутатору запрашивать имя пользователя и пароль для всех входящих пользователей Telnet, со списком локальных имен пользователей/паролей. 3. (необязательно) используйте подкоманду no password для удаления всех существующих простых общих паролей, просто для оптимизации конфигурации. При попытке подключиться по Telnet к коммутатору, настроенному как показано на рисунке, пользователю будет предложено сначала ввести имя пользователя, а затем пароль, как показано в Примере 4. Пара имя пользователя / пароль должна быть в локальной базе коммутатора.В противном случае вход в систему будет отклонен. В примере 4 коммутаторы Cisco не отображает символы при вводе пароля по соображениям безопасности. Защита доступа в пользовательском режиме с помощью внешних серверов аутентификации В конце примера 4 показано одно из многочисленных улучшений безопасности, когда требуется, чтобы каждый пользователь входил под своим собственным именем пользователя. Также в конце примера показано, как пользователь входит в режим конфигурации (configure terminal), а затем сразу же покидает его (end). Обратите внимание, что при выходе пользователя из режима конфигурации коммутатор генерирует сообщение журнала (log). Если пользователь вошел в систему с именем пользователя, сообщение журнала (log) идентифицирует это имя пользователя; В примере сгенерировано сообщение журнала по имени "ulanbaby". Однако использование имени пользователя / пароля, настроенного непосредственно на коммутаторе, не всегда удобно при администрировании. Например, каждому коммутатору и маршрутизатору требуется настройка для всех пользователей, которым может потребоваться войти на устройства. Затем, когда возникнет необходимость внесения изменений в настройки, например, изменение паролей для усиления безопасности, настройки всех устройств должны быть изменены. Лучшим вариантом было бы использовать инструменты, подобные тем, которые используются для многих других функций входа в ИТ. Эти инструменты обеспечивают центральное место для безопасного хранения всех пар имя пользователя / пароль, с инструментами, чтобы заставить пользователей регулярно менять свои пароли, инструменты, чтобы отключать пользователей, когда они завершают сеанс работы, и так далее. Коммутаторы Cisco позволяют именно этот вариант, используя внешний сервер, называемый сервером аутентификации, авторизации и учета (authentication, authorization, and accounting)(AAA). Эти серверы содержат имена пользователей / пароли. Сегодня многие существующие сети используют AAA-серверы для входа на коммутаторы и маршрутизаторы. Да для настройки данного входа по паре имя пользователя / пароль необходимо произвести дополнительные настройки коммутатора. При использовании AAA-сервера для аутентификации коммутатор (или маршрутизатор) просто отправляет сообщение на AAA-сервер, спрашивая, разрешены ли имя пользователя и пароль, и AAA-сервер отвечает. На рисунке показано, что пользователь сначала вводит имя пользователя / пароль, коммутатор запрашивает AAA-сервер, а сервер отвечает коммутатору, заявляя, что имя пользователя/пароль действительны. На рисунке процесс начинается с того, что ПК " А " отправляет регистрационную информацию через Telnet или SSH на коммутатор SW1. Коммутатор передает полученную информацию на сервер "AAA" через RADIUS или TACACS+. Сервер отправляет подтверждение коммутатору, который, в свою очередь, отправляет приглашение (разрешение) на ввод команды в пользовательскую систему. Хотя на рисунке показана общая идея, обратите внимание, что информация поступает с помощью нескольких различных протоколов. Слева, соединение между Пользователем и коммутатором или маршрутизатором использует Telnet или SSH. Справа коммутатор и AAA-сервер обычно используют протокол RADIUS или TACACS+, оба из которых шифруют пароли, при передаче данных по сети. Настройка защищенного удаленного доступа по SSHl До сих пор мы рассматривали доступ к коммутатору по консоли и Telnet, в основном игнорируя SSH. У Telnet есть один серьезный недостаток: все данные в сеансе Telnet передаются в открытом виде, включая обмен паролями. Таким образом, любой, кто может перехватывать сообщения между Пользователем и коммутатором (man-in-the-middle attack), может видеть пароли. SSH шифрует все данные, передаваемые между SSH-клиентом и сервером, защищая данные и пароли. SSH может использовать тот же метод аутентификации локального входа, что и Telnet, с настроенными именем пользователя и паролем в локальной базе коммутатора. (SSH не работает с методами аутентификации, которые не используют имя пользователя, например только общие пароли.) Итак, в настройке доступа для локальных пользователей по Telnet, как показано ранее на рисунке, также включена локальная аутентификация по имени пользователя для входящих соединений SSH. На рисунке показан один пример настройки того, что требуется для поддержки SSH. Рисунок повторяет конфигурацию создания локального пользователя, (см. рисунок) для подключения по Telnet. На скриншоте показаны три дополнительные команды, необходимые для завершения настройки SSH на коммутаторе. На рисунке показаны три дополнительные команды, необходимые для завершения настройки SSH на коммутаторе. На рисунке показан листинг настройки SSH. Для настройки SSH на рисунке, отображаются команды: hostname sw-1 (задает имя коммутатору) ip domain-name testing.com (команда использует полное доменное имя sw-1.testing.com) crypto key generate rsa. Для локальной конфигурации имени пользователя (например, Telnet) отображаются следующие команд: username ulanbaby secret box username landy secret man line vty 0 15 login local IOS использует три команды: две для конфигурации SSH, а также одну команду для создания ключей шифрования SSH. Сервер SSH использует полное доменное имя коммутатора в качестве входных данных для создания этого ключа. Коммутатор создает полное доменное имя из имени хоста и доменного имени коммутатора. Рисунок 5 начинается с установки обоих значений (на тот случай, если они еще не настроены). Затем третья команда, команда crypto key generate rsa, генерирует ключи шифрования SSH. IOS по умолчанию использует SSH-сервер. Кроме того, IOS по умолчанию разрешает SSH-соединения по vty. Просмотр настроек в режиме конфигурации, шаг за шагом, может быть особенно полезен при настройке SSH. Обратите внимание, в частности, что в этом примере команда crypto key запрашивает у пользователя модуль ключа; вы также можете добавить параметр modulus modulus-value в конец команды crypto key, чтобы добавить этот параметр в команду. В примере 5 показан порядок настройки ssh ( такие же команды, что и на рис. 5) Ключ шифрования является последним шагом. Ранее упоминалось, что одним полезным значением по умолчанию было то, что коммутатор по умолчанию поддерживает как SSH, так и Telnet на линиях vty. Однако, поскольку Telnet не безопасный протокол передачи данных, то вы можете отключить Telnet, чтобы обеспечить более жесткую политику безопасности. Для управления тем, какие протоколы коммутатор поддерживает на своих линиях vty, используйте подкоманду transport input {all | none / telnet / ssh} vty в режиме vty со следующими опциями: transport input all or transport input telnet ssh поддержка как Telnet, так и SSH transport input none: не поддерживается ни один протокол transport input telnet: поддержка только Telnet transport input ssh: поддержка только SSH В завершении этой части статьи о SSH, расписана пошаговая инструкция настройки коммутатора Cisco для поддержки SSH с использованием локальных имен пользователей. (Поддержка SSH в IOS может быть настроена несколькими способами; эта пошаговая инструкция показывает один простой способ ее настройки.) Процесс, показанный здесь, заканчивается инструкцией настройки локального имени пользователя на линиях vty, как было обсуждено ранее в первой части данной серии статей. Шаг 1. Настройте коммутатор так, чтобы он генерировал совпадающую пару открытых и закрытых ключей для шифрования: если еще не настроено, задайте командой hostnamename имя для этого коммутатора в режиме глобальной конфигурации. Если еще не настроено, задайте командой ip domain-namename доменное имя для коммутатора в режиме глобальной конфигурации. Используйте команду crypto key generate rsa в режиме глобальной конфигурации (или команду crypto key generate RSA modulus modulus-value, чтобы избежать запроса модуля ключа) для генерации ключей. (Используйте по крайней мере 768-битный ключ для поддержки SSH версии 2.) Шаг 2. (Необязательно) используйте команду ip ssh version 2 в режиме глобальной конфигурации, чтобы переопределить значение по умолчанию для поддержки обеих версий протокола удаленного доступа SSH 1 и 2, так что бы разрешены были только соединения SSHv2. Шаг 3. (Необязательно) если вы еще не настроили нужный параметр, задайте на линии vty для работы по SSH и Telnet.: используйте команду transport input ssh в режиме конфигурации линий vty, чтобы разрешить только SSH. используйте команду transport input all (по умолчанию) или команду transport input telnet ssh в режиме конфигурации линий vty, чтобы разрешить как SSH, так и Telnet. Шаг 4. Используйте различные команды в режиме конфигурации линий vty для настройки локальной аутентификации имени пользователя, как описано ранее в этой статье. На маршрутизаторах Cisco часто по умолчанию настроен параметр transport input none. Поэтому необходимо добавить подкоманду transport input line для включения Telnet и / или SSH в маршрутизаторе. Для просмотра информации о состояния SSH на коммутаторе используются две команды. Во-первых, команда show ip ssh выводит информацию о состоянии самого SSH-сервера. Затем команда show ssh выводит информацию о каждом клиенте SSH, подключенном в данный момент к коммутатору. В пример 6 показаны примеры работы каждой из команд, причем пользователь ULANBABY в данный момент подключен к коммутатору.
img
Стандарт JSON Web Tokens (JWT) – это лаконичный метод передачи данных, поддающихся проверке. Каждый токен содержит подпись, с помощью которой эмитент может проверить целостность сообщения. С помощью этой статьи вы можете узнать, что из себя представляет структура JWT и как можно создать свои собственные токены. JWT – это популярный способ защиты API и аутентификации сеансов пользователей, так как они достаточно просты и являются автономными.  Как работают JWT? Одна из самых распространенных задач в любом API – это проверка того факта, что пользователи являются теми, за кого себя выдают. Как правило, аутентификация выполняется тогда, когда клиент использует ключ API для запросов, которые он отправляет на сервер. Этот ключ содержит информацию, которая подтверждает личность пользователя. Но все еще остается вопрос: как сервер проверяет, что пользователь сначала предоставил ключ? JWT с легкостью решают эту проблему с помощью секретного ключа, который используется для подписи каждого токена. Сервер проверяет действительность токена, повторно пересчитывая подпись с помощью своего секретного ключа. Любое несанкционированное вмешательство приведет к тому, что проверка не будет выполнена.  Структура JWT JWT состоят из трех отдельных компонентов: Заголовок (header) – содержит метаданные о токене, например, алгоритм подписи, который был использован. Полезная нагрузка (payload) – в качестве полезной нагрузки могут выступать любые случайные данные, которые так или иначе относятся к вашей системе. Полезная нагрузка может содержать ID пользователя и набор определенных функций, с которыми пользователь может взаимодействовать.  Подпись (signature) – подпись позволяет в дальнейшем проверить целостность токена. Подпись создается путем подписания заголовка и полезной нагрузки с помощью секретного ключа, который знает только сервер.  Для того, чтобы сформировать JWT, все эти три компонента нужно записать через точку: header.payload.signature Каждый компонент кодируется с помощью стандарта Base-64. Готовый токен представляет собой строку текста, которую можно использовать в средах разработки программ и отправлять вместе с HTTP-запросами.  Создание JWT Создать JWT можно на любом языке программирования. В данном случае мы будем использовать PHP, но вы можете использовать и другой язык, процесс будет аналогичным.  Начнем с создания заголовка. Как правило, он включает в себя два поля –  alg и  typ : alg – это алгоритм хеширования, который мы будем использовать для создания подписи. Как правило, используют HMAC SHA256 ( HS256 ). typ – это тип токена, который мы создаем. Здесь мы должны указать  JWT . Вот так выглядит объект JSON, который определяет заголовок: {    "alg": "HS256",    "typ": "JWT" } Заголовок необходимо закодировать с помощью Base-64: $headerData = ["alg" => "HS256", "typ" => "JWT"]; $header = base64_encode(json_encode($headerData)); Затем нам необходимо определить еще один объект JSON - полезную нагрузку токена. Что из себя будет представлять полезная нагрузка зависит от приложения. В данном примере мы используем информацию об учетной записи аутентифицированного пользователя и информацию о самом токене.  exp ,  iat и  nbf – это условные поля, которые используются для того, чтобы указать время истечения срока действия токена, время его создания и момент времени (начальный), до которого он считается недействительным. Полезную нагрузку также необходимо закодировать с помощью Base-64. $payloadData = [    "userId" => 1001,    "userName" => "demo",    "licensedFeatures" => ["todos", "calendar", "invoicing"],    "exp" => (time() + 900),    "iat" => time(),    "nbf" => time() ]; $payload = base64_encode(json_encode($payloadData)); Нам остается только создать подпись. Для этого сначала нужно объединить заголовок и полезную нагрузку в одну сроку, разделив их точкой: $headerAndPayload = "$header.$payload"; Затем мы должны сгенерировать уникальный секретный ключ, который мы будем использовать в качестве секретного ключа подписи. Этот ключ должен надежно храниться на вашем сервере, и его ни в коем случае нельзя передавать клиентам. Если значение секретного ключа будет раскрыто, то любой пользователь сможет создавать действительные токены.  // PHP method to generate 32 random characters $secret = bin2hex(openssl_random_pseudo_bytes(16)); И мы завершаем процесс с помощью подписи объединенной строки (заголовка и полезной нагрузки) с помощью секретного ключа. Для этого мы будем использовать алгоритм хеширования, который мы указали в заголовке. Получившаяся подпись также, как и другие компоненты, должна быть закодирована с помощью Base-64.  $signature = base64_encode(hash_hmac("sha256", $headerAndPayload, $secret, true)); Итак, у нас теперь есть заголовок, полезная нагрузка и подпись. Они представляют собой отдельные текстовые компоненты. Для того, чтобы создать JWT, мы должны объединить из с помощью точки. И теперь мы можем отправить его клиенту: $jwt = "$header.$payload.$signature"; Проверка входящих JWT Клиентское приложение может определить, какие функции доступны пользователю, если расшифрует полезную нагрузку токена. Вот пример, написанный на JavaScript: const tokenComponents = jwt.split("."); const payload = token[1]; const payloadDecoded = JSON.parse(atob(payload)); // ["todos", "calendar", "invoicing"] console.log(payloadDecoded.licensedFeatures); Злоумышленник может подумать, что эти данные представляют собой простой текст и его легко изменить. Он может попробовать убедить сервер в том, что у него есть некая дополнительная доступная ему функция, изменив полезную нагрузку токена в своем запросе: // Create a new payload component const modifiedPayload = btoa(JSON.stringify({    ...payloadDecoded,    licensedFeatures: ["todos", "calendar", "invoicing", "extraPremiumFeature"] })); // Stitch the JWT back together with the original header and signature const newJwt = `${token[0]}.${modifiedPayload}.${token[2]}` Как же сервер защищается от подобных атак? Ответ заключается в процессе создания подписи. Значение подписи учитывает, как заголовок токена, так и его полезную нагрузку. В случае данного примера изменение полезной нагрузки ведет к тому, что подпись становится недействительной.  Серверная программа проверяет входящие JWT путем пересчета их подписей. Если подпись, отправленная клиентом, не совпадает с подписью, посчитанной на сервере, то можно сделать вывод о том, что токен был подделан.  $tamperedToken = $_POST["apiKey"]; list($header, $payload, $signature) = $tamperedToken; // Determine the signature this token *should* have // when the server's secret is used as the key $expectedSignature = hash_hmac("sha256", "$header.$payload", $secret, true); // The token has been tampered with because its // signature is incorrect for the data it includes if ($signature !== $expectedSignature) {    http_response_code(403); } // The signatures match - we generated this // token and can safely trust its data else {    $user = fetchUserById($payload["userId"]); } Злоумышленник не может создать действительный токен, если он не знает секретный ключ, который хранится на сервере. Также это означает, что случайная утеря или преднамеренная передача секретного ключа сразу же делает все ранее созданные токены недействительными.  В реальной ситуации ваш код аутентификации должен проверять срок действия токена, а также должен убедиться, что он уже является действительным ( nbf в полезной нагрузке). Это все необходимо для того, чтобы определить, является ли сеанс пользователя действительным. Когда нужно использовать JWT JWT, как правило используют для аутентификации API, поскольку их достаточно просто реализовать на сервере, легко использовать на клиентской стороне и просто передавать через границы сети. Но несмотря на то, что они такие простые, они обеспечивают хороший уровень безопасности за счет того, что каждый токен подписывается с помощью секретного ключа, который хранится на сервере.  JWT – это механизм, который не фиксирует текущее состояние, поэтому нет необходимости фиксировать информацию о созданных токенах на вашем сервере. Информацию о клиенте, который предоставляет вам JWT, вы можете получить из полезной нагрузки, а не искать ее в базе данных. После того, как подпись будет проверена, эта информация будет считаться достоверной.  Если вам необходимо обмениваться информацией между двумя сторонами без какого-либо постороннего вмешательства, то использование JWT – это отличный вариант. Однако у этого механизма есть слабые места, о которых следует знать заранее. В случае, если произойдет утечка секретного ключа или если ваш код проверки подписи содержит ошибку, то будет скомпрометирована вся система. Именно поэтому для реализации процесса создания и проверки JWT многие разработчики используют библиотеку с открытым исходным кодом. Функции доступны для всех популярных языков программирования, и они исключают риск ошибок при проверке токена.   Заключение Стандарт JWT – это формат обмена данными, который включает в себя проверку целостности. Как правило, JWT используют для защиты взаимодействия между серверами API и клиентскими приложениями. Сервер может доверять входящим токенам, если у него получается воспроизвести их подписи. С помощью информации, полученной из полезной нагрузки, можно обеспечить безопасность при выполнении каких-либо действий  JWT достаточно удобны, но при этом имеют некоторые недостатки. Текстовое представление JWT в кодировке Base-64 может быть слишком объемным, если в полезной нагрузке будет слишком много полей. Это будет недопустимым потреблением ресурсов, если ваш клиент собирается отправлять JWT с каждым запросом.  Еще одним возможным недостатком может оказаться то, что JWT не фиксирует текущее состояние. После того, как токен был создан, он является неизменяемым и должен использоваться как есть до истечения своего срока действия. Клиенты, которые используют полезные данные JWT для определения прав доступа пользователя или для использования лицензированных функций, должны будут получать новый токен с сервера каждый раз, когда что-то из этого меняется. 
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59