По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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 для определения прав доступа пользователя или для использования лицензированных функций, должны будут получать новый токен с сервера каждый раз, когда что-то из этого меняется. 
img
Салют! В статье расскажем о модуле для работы с лог-файлами Asterisk, который позволяет настроить какие события должны попадать в лог и в каких файлах он должен храниться. Итак, речь пойдёт о модуле Asterisk Logfile Settings. Все лог-файлы нашей IP-АТС Asterisk, как известно, хранятся в папке /var/log/asterisk и мы можем просматривать их, не выходя из GUI FreePBX, благодаря модулю Asterisk Logfiles. Однако, по дефолту, вывод имеющихся лог файлов может не содержать много нужной и полезной информации, особенно это актуально в процессе траблшутинга. Итак, давайте рассмотрим возможности данного модуля. Для этого открываем Settings → Asterisk Logfile Settings. Перед нами должно открыться следующее окно: Как видно функционал данного модуля разбит по двум вкладкам: General Settings и Log Files General Settings На данной вкладке настраивается формат и представление лог-файлов: Date Format - Параметр отображения даты и временной метки в логе. Для того, чтобы ознакомиться с другими возможными спецификаторами, предлагается ознакомиться с мануалом Linux strftime(3). Можно также добавить десятые 1%, сотые 2% и т.д. Формат даты по умолчанию ISO 8601 yyyy-mm-dd HH:MM:SS (%F %T). Log Rotation - Здесь можно выбрать как будут храниться старые записи в логах, по умолчанию – они записываются в отдельный файл каждую ночь Sequential - Записи будут переименовываться с определённым порядковым номером, у самого нового лога будет самый высокий порядковый номер Rotate – Самый старый лог будет иметь самый высокий порядковый номер. Данная настройка стоит по умолчанию Timestamp – Использовать временную метку вместо порядкового номера лог-файла. Append Hostname - Определяет добавлять ли имя сервера к в записи лог-файла. Это полезно, если вы используете центральный сервер для хранения логов, куда поступает информация со всех остальных серверов. В этом случае, эта настройка может быть полезна чтобы идентифицировать источник информации. В противном случае, оставьте No Log Queues - Включает логгирование событий очередей, созданных с помощью модуля Queues. Создаёт для этого отдельный файл queue_log. Log Files В этой секции, собственно, и настраивается каким должен быть лог, какие события он должен логировать, насколько подробно и так далее. Здесь вы также можете создать свой собственный тип лог-файла и определить нужные вам параметры. Рассмотрим какие опции нам доступны: Debug - Очень подробный тип сообщений, который будет занесён в лог. Рекомендуется устанавливать данный параметр только если вы столкнулись с какой либо проблемой и для её отладки вам нужна более подробная информация DTFM - События, свидетельствующие о факте нажатия на кнопки телефона. Полезно при исследовании проблем с IVR и голосовой почтой Error - Критические ошибки и проблемы Fax - События передачи и приёма факсов Verbose - События, отображающие пошаговое установление соединения и дальнейшую информацию на протяжении звонка. Полезно при анализе неправильно отрабатывающих настроек call flow Warning - Возможные ошибки в синтаксисе дайлплана или call flow, не критично. Давайте сделаем отдельный файл, который будет логгировать только события нажатия клавиш на телефоне и назовём его dtfm Теперь позвоним на общий номер, на входящем маршруте которого стоит IVR. В данном IVR стоит правило – после нажатия на кнопку 5 соединить с неким внутренним номером. А теперь посмотрим новый лог в модуле Asterisk Log Files - dtfm:
img
JSON, несомненно, стал неотъемлемой частью cети. Это любимый формат для огромного количества веб-сервисов, в том числе и для крупных игроков. В качестве примера можно назвать такие ведущие компании, как Google, Twitter и Facebook, которые предоставляют данные о пользователях в формате JSON. До 2013 года Twitter поддерживал XML, но в следующей версии отказался и стал использовать JSON. Когда Android разработчик хочет заявить, что приложению требуется разрешение пользователя, формат записывается в JSON, XML, YAML, и т.д.. Но JSON затмевает их все, поскольку является форматом, в котором любой может взаимодействовать с различными программами в интернете. Почему? Чтобы разобраться, давайте вкратце рассмотрим концепцию JSON. Что такое JSON? JavaScript Object Notation (JSON) - текстовый формат отображения данных, основанный на упорядоченном списке и парах "ключ-значение". Вы можете использовать их для хранения данных в логическом и упорядоченном виде, чтобы получить к ним беспрепятственный доступ. Также его используют для обмена данными между веб-серверами и клиентами. Кроме обмена данными, его можно использовать для миграции баз данных, например, с JSON на SQL. Вы даже можете экспортировать данные с помощью JSON из уже зарегистрированных веб-приложений. Несмотря на то, что JSON был создан на основе JavaScript, он является независимым от языка, что означает, что различные языки программирования могут выполнять разбор данных. В чем секрет его популярности? JSON предлагает уникальный пользовательский опыт. Он позволяет упростить синтаксис, когда существует простой метод представления данных. Кроме того, многие пользователи обнаружили, что объектные литералы JavaScript являются идеальным форматом для передачи объектно-ориентированных данных по сети. Когда вы пишете свои фронт-коды на Javascript, формат JSON упрощает загрузку данных в деревья и обеспечивает плавную работу с ними. Он обеспечивает целостное форматирование данных для экономии пропускной способности и увеличения времени отклика при общении с сервером. От простой передачи данных до возможности их считывания (удобочитаемости) и лёгкости в кодировании - с JSON всё становится безупречным. Благодаря своей чрезвычайной популярности, многие базы данных расширяют встроенную поддержку JSON. Например, MySQL и PostgreSQL поставляются со встроенной поддержкой данных JSON для хранения и запросов. Зачем хранить JSON на надежном хостинге? Бизнес-процессы связаны с большим количеством бумажной волокиты. С течением времени ваш бизнес может оказаться в океане бумажной работы, которую впоследствии становится трудно хранить и управлять этими данными. Вы знаете, насколько уязвим стал Интернет, когда киберпреступники ждут любого шанса украсть ваши данные и доставить неприятности. С помощью защищенной платформы хостинга вы можете защитить свои данные от вредоносных программ, DdoS атак и других угроз. Вы также можете настроить дополнительные уровни аутентификации и мониторинг сеансов для защиты конфиденциальности данных. Теперь давайте обсудим некоторые из лучших услуг JSON-хостинга для безопасного хранения ваших данных. Vultr С помощью Vultr Object Storage вы можете обеспечить гибкость интеграции с инструментами и приложениями сторонних производителей, поддерживающими S3. Архитектура объектного хранилища, масштабируемая по требованию, обеспечивает большую надежность данных и меньший уровень сложности управления. Так как она клонирует ваши данные в автоматическом режиме 3 раза, вы можете быть уверены в долговечности и доступности данных. Расширяйте или сокращайте свои объемы хранения данных, добавляя объекты или удаляя их. Vultr обеспечивает высокую производительность, предлагая технологию кэширования NVMe. Вы также можете хранить медиа-объекты для ваших приложений, включая изображения, видео и аудио. Это упрощает хранение, позволяя вам увеличивать или уменьшать использование в соответствии с вашими потребностями. Воспользуйтесь широким спектром пользовательских решений, включая CDN точки присутствия, хранение облачных данных приложений, сохранение истории логов, настройка аварийного восстановления, архивирование больших наборов данных и многое другое. Vultr предлагает установку приложений одним щелчком мыши, локальные SSD-накопители и процессоры Intel для высокой производительности. У него имеется 17 центров обработки данных по всему миру и неограниченное количество комбинаций операционных систем, включая CentOS, Ubuntu, Windows, Debian и FreeBSD. Он также предлагает мощные дополнения, такие как Snapshots, защита от DDoS-атак, Firewall и гибкие сетевые связи. Стоимость: начинается с 5 долларов в месяц, 250 ГБ памяти, 1000 ГБ передачи данных в месяц A2 Hosting A2 Hosting известен своими молниеносными и надежными хостинговыми решениями, адаптированными к вашим потребностям. Он делает JSON форматом по умолчанию с его установкой PHP и обеспечивает в 20 раз более быстрый процесс хостинга на его Turbo серверах. Здесь используется высококлассное программное обеспечение для разработки, такое как PHP, MySQL, Python, PERL, PostgreSQL, Apache, Node.js и MariaDB. Кроме того, предоставляется бесплатный доступ к SSH и SSL-сертификации. A2 Hosting защищает ваши данные от онлайн-угроз, включая бесплатную защиту от HackScan, а также защиту от DDoS-атак. A2 гарантирует 99.9% бесперебойной работы благодаря своим высокопроизводительным серверам, так что вы можете получить доступ к данным в любое время. Также в ассортименте есть множество других альтернатив для хостинга, включая Ubuntu Server, Nginx, Apache Tomcat, IonCube и Perl 5.10. Amazon S3 Amazon Simple Storage Service или Amazon S3 обеспечивает высококачественную доступность, возможность масштабирования, высокую производительность и безопасность данных. Неважно, насколько велик или мал ваш бизнес - у него есть решение для хранения данных для каждого. Система может защитить ваши данные для самых разных областей применения, включая мобильные приложения, веб-сайты, корпоративные приложения, IoT-устройства и многое другое. Удобные функции управления позволяют хранить и упорядочивать данные, а затем настраивать их с помощью эффективных средств контроля доступа. Amazon S3 обеспечивает высокий уровень сохранности данных благодаря созданию и хранению копий всех объектов с поддержкой S3. Таким образом, ваши данные доступны в любое время и защищены от различных угроз и ошибок. Компания предлагает доступные по цене классы хранения, поддерживающие различные уровни доступа к данным. Amazon S3 полностью совместим с HIPAA/HITECH, PCI-DSS, Директивой ЕС по защите данных, FedRAMP и FISMA. Кроме того, здесь реализованы возможности аудита, репликации данных, управления доступом, интеграции S3 с Amazon Macie, ведения журналов активности и многое другое. Используя S3 Select, вы можете получить дополнительные подмножества данных объектов и повысить производительность запросов. С помощью функции query-in-place можно выполнять анализ больших данных, запрашивать данные S3 с помощью SQL запросов используя Amazon Athena, а также анализировать данные с помощью Amazon Redshift Spectrum. GitHub GitHub, которому доверяют более 50 миллионов разработчиков, - это ваш идеальный хостинг-партнёр, где управление вашими файлами и доступ к ним очень удобны. Он не только обеспечивает гибкий хостинг и детализированный контроль доступа к данным, но и поддерживает жесткую безопасность и надежность с помощью GitHub Enterprise Cloud. В GitHub находится множество репозиториев с открытым исходным кодом, частных и публичных репозиториев всего в одном месте. Каждый из них оснащён передовыми утилитами, которые могут помочь вам в хостинге, документации, релизе кодов и многом другом. С помощью Git LFS вы можете упростить работу с большими файлами. Используйте GitHub Enterprise Server для развертывания своего центра обработки данных. Его также можно развернуть в частном "облаке" с помощью веб-служб Amazon, Google Cloud или Azure. Настройте каждый процесс с помощью интуитивно понятного API вместе с приложениями GitHub. GitHub также позволяет безупречно интегрировать средства, которые вы используете для облегчения эффективного рабочего процесса. Перемещайте свои данные в облако через встроенный CI/CD. Вы можете использовать пакеты GitHub и передавать неограниченное количество данных в рамках GitHub Actions. Здесь используется CodeQL, который является первоклассным механизмом для анализа семантических кодов, для выявления слабых мест в системе безопасности. Google Cloud Storage Google Cloud - это универсальное решение для хранения всех ваших данных, которым доверяют предприятия и разработчики по всему миру. Оно обеспечивает гибкий, унифицированный и надежный подход к хранению и защите данных. Используя Управление Жизненным Циклом Объектов (OLM), вы можете настроить данные и автоматически перейти к недорогим классам хранения в соответствии с вашими критериями. GCP предоставляет вам свободу в размещении ваших JSON и данных приложений в нужном вам месте и способе хранения в соответствии с вашими потребностями в плане производительности. Здесь предусмотрены различные классы хранения, которые позволят вам определить цену и доступность. Есть четыре класса хранения: Standard оптимизирован для высокочастотного доступа и производительности. Nearline для нечастого доступа к данным с высокой устойчивостью и скоростью. Coldline для доступа к данным несколько раз в год с высокой устойчивостью и скоростью. Archive для доступа к данным один раз в год с доступной ценой. Данное решение предназначено для множества случаев использования, включая интегрированное хранилище данных для вычислений, машинного обучения и анализа, хранения и доставки мультимедийного контента, архивов и резервных копий. Вы можете воспользоваться функцией object versioning для создания и хранения копий объектов в случае, если они перезаписаны или удалены. Кроме того, можно определить политики хранения, сохранить объекты от удаления, шифрование и управление данными с помощью службы Cloud Key Management Service, а также отключить ACL объектов для контроля доступа. Вы также можете настроить функцию функцию сохранения данных (data retention) с помощью Bucket Lock, отправки уведомлений, журналов аудита и контроля доступа с помощью Cloud Identity Access Management (IAM). JSONbin С JSONbin вам не нужно настраивать базу данных или настраивать временные серверы для тестирования front-end приложений. Используйте его для хранения всех ваших данных и тестирования приложений бесплатно. Он создает и хранит копии объектов всякий раз, когда вы вводите новую запись. Вы даже можете получить последние обновления или оригинальную запись, когда она вам нужна. Когда вы регистрируетесь в JSONbin, программа предоставляет вам секретный ключ, который вы можете использовать для создания ваших персональных записей. Путем передачи действующего секретного ключа вы можете обновлять или просматривать свои записи с целью обеспечения конфиденциальности и безопасности. JSONbin предлагает функцию " Collection ", с помощью которой вы можете хранить и упорядочивать данные в определенном порядке. Вы даже можете использовать его пользовательский запрос для доступа к нескольким записям, определив фильтры. Используя вебхуки, вы можете создавать, удалять или обновлять данные в любое время. Программа предоставляет полностью персонализированную панель инструментов, на которой вы можете создавать личные или общедоступные корзины. Вы также можете получить дополнительную помощь по ссылке API для получения информации о том, как управлять записями и создавать корзины. Вы можете проверить ваши записи с помощью Schema Docs, которые вы можете прикрепить к Collections. Получить информацию о деятельности API в режиме реального времени через электронную почту. Кроме этого, вы сможете добавлять новых участников и более эффективно управлять ими, используя функцию Team Management. n:point Настройка JSON endpoints и редактирование данных возможно в считанные секунды при использовании n: point. Для начала можно использовать облегчённый backend n:point, чтобы создавать данные, определять структуру данных через JSON схему, а затем блокировать её, чтобы предотвратить удаление или переопределение. В результате вы сможете предоставить своей команде доступ, где они смогут обновлять записи, без ущерба для исходных данных. Редактирование данных не требует усилий, так как позволяет быстро выявлять ошибки и обеспечивает гибкий синтаксис объектов JavaScript. Для доступа к определенным данным добавьте индексы массива или ключи свойств к URL API. Используя функции CORS, вы будете иметь доступ к API из любого места. Заключение Современный бизнес ежедневно связан с большим объемом бумажной волокиты, которую со временем становится трудно обрабатывать. Кроме того, ваши данные подвергаются сетевым угрозам и физическим повреждениям, которые могут стоить вам дороже, чем вы ожидали. Но не волнуйтесь, избавьтесь от бумажной волокиты и позвольте сторонним хостинг-провайдерам, как упоминалось выше, хранить ваши данные и управлять сопутствующими серверами, чтобы избавить вас от лишней головной боли.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59