{"meta":{"title":"Рекомендации по использованию веб-перехватчиков","intro":"Следуйте этим рекомендациям, чтобы повысить безопасность и производительность при использовании веб-перехватчиков.","product":"Веб-перехватчики","breadcrumbs":[{"href":"/ru/enterprise-server@3.22/webhooks","title":"Веб-перехватчики"},{"href":"/ru/enterprise-server@3.22/webhooks/using-webhooks","title":"Использование веб-перехватчиков"},{"href":"/ru/enterprise-server@3.22/webhooks/using-webhooks/best-practices-for-using-webhooks","title":"Рекомендации"}],"documentType":"article"},"body":"# Рекомендации по использованию веб-перехватчиков\n\nСледуйте этим рекомендациям, чтобы повысить безопасность и производительность при использовании веб-перехватчиков.\n\n## Подписка на минимальное количество событий\n\nВы должны подписаться только на нужные события веб-перехватчика. Это приведет к сокращению объема работы, необходимой для сервера. Дополнительные сведения о подписке на события см. в разделе \\[AUTOTITLE и [Создание веб-перехватчиков](/ru/enterprise-server@3.22/webhooks/using-webhooks/creating-webhooks)]\\(/webhooks/using-webhooks/editing-webhooks).\n\n## Использование секрета веб-перехватчика\n\n> \\[!WARNING]\n> Чтобы избежать случайного раскрытия конфиденциальной информации, **не** включайте конфиденциальную информацию в URL-адрес полезных данных.\n> Это включает собственные ключи API и другие учетные данные проверки подлинности. Вместо этого, чтобы убедиться, что доставки webhook были отправлены и GitHub не подвергались вмешательству, используйте секрет webhook. Дополнительные сведения см. в разделе [Проверка доставки веб-перехватчика](/ru/enterprise-server@3.22/webhooks/using-webhooks/validating-webhook-deliveries).\n\nСекрет веб-перехватчика должен быть случайной строкой текста с высокой энтропией. Вы должны безопасно хранить секрет веб-перехватчика таким образом, чтобы к серверу можно было получить доступ.\n\n## Использование проверки HTTPS и SSL\n\nУбедитесь, что сервер использует подключение HTTPS. По умолчанию GitHub будут проверять SSL-сертификаты при доставке вебхуков.\nGitHub рекомендую оставить включённой SSL-верификацию.\n\n## Ответьте в течение  секунд\n\nВаш сервер должен ответить ответом в 2XX в течение –30 секунд после получения доставки вебхука. Если ваш сервер отвечает дольше, то GitHub соединение прекращается и считает доставку неудачной.\n\nЧтобы своевременно реагировать, может потребоваться настроить очередь для обработки полезных данных веб-перехватчика асинхронно. Сервер может реагировать, когда он получает веб-перехватчик, а затем обрабатывать полезные данные в фоновом режиме, не блокируя будущие поставки веб-перехватчика. Например, вы можете использовать сервисы вроде [Hookdeck](https://hookdeck.com) или библиотеки вроде [Resque](https://github.com/resque/resque/) (Ruby), [RQ](http://python-rq.org/) (Python) или [RabbitMQ](http://www.rabbitmq.com/) (Java).\n\n## Проверка типа события и действия перед обработкой события\n\nСуществует несколько типов событий веб-перехватчика, и многие события могут иметь несколько типов действий.\nGitHub продолжает добавлять новые типы событий и новые действия к существующим типам событий. Приложение должно проверить тип события и действие полезных данных веб-перехватчика перед обработкой полезных данных. Для определения типа события можно использовать заголовок запроса `X-GitHub-Event`. Чтобы определить тип действия, можно использовать ключ верхнего уровня `action` в полезных данных события.\n\n## Redeliver пропущенные поставки\n\nЕсли сервер выходит из строя, вы должны повторно создать пропущенные веб-перехватчики после резервного копирования сервера. Дополнительные сведения см. в разделе [Повторное создание веб-перехватчиков](/ru/enterprise-server@3.22/webhooks/testing-and-troubleshooting-webhooks/redelivering-webhooks).\n\n## Используйте заголовок `X-GitHub-Delivery`\n\nВ атаке воспроизведения плохой субъект перехватывает доставку веб-перехватчика и повторно отправляет доставку. Чтобы защититься от повторных атак, можно использовать заголовок `X-GitHub-Delivery`, чтобы каждая подача была уникальной для каждого события.\n\n> \\[!NOTE]\n> Если вы запросите повторную доставку, заголовок `X-GitHub-Delivery` будет таким же, как и при первоначальной доставке.\n\n## Дополнительные материалы\n\n* [Рекомендации по использованию REST API](/ru/enterprise-server@3.22/rest/using-the-rest-api/best-practices-for-using-the-rest-api)\n* [Лучшие практики создания приложения на GitHub](/ru/enterprise-server@3.22/apps/creating-github-apps/about-creating-github-apps/best-practices-for-creating-a-github-app)"}