{"meta":{"title":"Melhores práticas para usar webhooks","intro":"Siga estas melhores práticas para melhorar a segurança e o desempenho quando usar webhooks.","product":"Webhooks","breadcrumbs":[{"href":"/pt/webhooks","title":"Webhooks"},{"href":"/pt/webhooks/using-webhooks","title":"Usando webhooks"},{"href":"/pt/webhooks/using-webhooks/best-practices-for-using-webhooks","title":"Práticas recomendadas"}],"documentType":"article"},"body":"# Melhores práticas para usar webhooks\n\nSiga estas melhores práticas para melhorar a segurança e o desempenho quando usar webhooks.\n\n## Inscreva-se no número mínimo de eventos\n\nVocê só deve se inscrever nos eventos de webhook de que necessita. Isso reduzirá a quantidade de trabalho que seu servidor precisará executar. Para obter mais informações sobre como assinar eventos, confira [Criação de webhooks](/pt/webhooks/using-webhooks/creating-webhooks) e [Editando webhooks](/pt/webhooks/using-webhooks/editing-webhooks).\n\n## Usar um segredo de webhook\n\n> \\[!WARNING]\n> Para evitar a exposição acidental de informações sensíveis, **não** inclua informações confidenciais na URL do payload.\n> Isso inclui suas chaves de API e outras credenciais de autenticação. Para validar que as entregas de webhook foram enviadas pelo GitHub e não foram adulteradas, use um segredo de webhook. Para saber mais, confira [Validação de entregas de webhooks](/pt/webhooks/using-webhooks/validating-webhook-deliveries).\n\nO segredo do webhook deve ser uma sequência de caracteres aleatória com alta entropia. Você deve armazenar com segurança seu segredo de webhook de uma maneira que seu servidor possa acessar.\n\n## Usar verificação HTTPS e SSL\n\nVocê deve garantir que seu servidor use uma conexão HTTPS. Por padrão, GitHub verificará certificados SSL ao fornecer webhooks.\nGitHub recomenda que você deixe a verificação SSL habilitada.\n\n## Permitir os endereços IP do GitHub\n\nVocê pode configurar uma lista de permissões de IP para o servidor e adicionar os endereços IP que GitHub usa para entregas de webhook. Isso pode bloquear solicitações fraudulentas para o servidor.\n\nVocê pode usar o `GET /meta` endpoint para localizar a lista atual de GitHub endereços IP. Para saber mais, confira [Pontos de extremidade da API REST para metadados](/pt/rest/meta/meta#get-github-meta-information).\nGitHub ocasionalmente, faz alterações em seus endereços IP, portanto, você deve atualizar sua lista de permissões de IP periodicamente.\n\nPara saber mais, confira [Sobre os endereços IP do GitHub](/pt/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses).\n\n## Responder dentro de 10 segundos\n\nSeu servidor deve responder com resposta 2XX no prazo de 10 segundos após receber uma entrega de webhook. Se o servidor demorar mais do que isso para responder, encerrará GitHub a conexão e considerará a entrega uma falha.\n\nPara responder em tempo hábil, convém configurar uma fila para processar conteúdo de webhook de forma assíncrona. Seu servidor pode responder ao receber o webhook e, em seguida, processar o conteúdo em segundo plano sem bloquear futuras entregas de webhook. Por exemplo, você pode usar serviços como <c0>Hookdeck</c0> ou bibliotecas como <c1>Resque</c1> (Ruby), < <c2>RQ</c2> (Python) ou <c3>RabbitMQ</c3> (Java).\n\n## Verifique o tipo de evento e a ação antes de processar o evento\n\nHá vários tipos de evento de webhook e muitos eventos podem ter vários tipos de ação.\nGitHub continua a adicionar novos tipos de eventos e novas ações aos tipos de eventos existentes. Seu aplicativo deve verificar o tipo de evento e a ação de um conteúdo de webhook antes de processar o conteúdo. Para determinar o tipo de evento, você pode usar o cabeçalho de solicitação `X-GitHub-Event`. Para determinar o tipo de ação, você pode usar a chave `action` de nível superior no conteúdo do evento.\n\n## Reentregar entregas perdidas\n\nSe o servidor ficar inoperante, você deverá reenviar os webhooks perdidos assim que o servidor voltar a funcionar. Para saber mais, confira [Entregar webhooks novamente](/pt/webhooks/testing-and-troubleshooting-webhooks/redelivering-webhooks).\n\n## Usar o cabeçalho `X-GitHub-Delivery`\n\nEm um ataque de reprodução, um agente mal-intencionado intercepta uma entrega de webhook e reenvia a entrega. Para proteção contra ataques de repetição, você pode usar o cabeçalho `X-GitHub-Delivery` para garantir que cada entrega seja única por evento.\n\n> \\[!NOTE]\n> Se você solicitar uma reentrega, o cabeçalho `X-GitHub-Delivery` será o mesmo que na entrega original.\n\n## Leitura adicional\n\n* [Práticas recomendadas para usar a API REST](/pt/rest/using-the-rest-api/best-practices-for-using-the-rest-api)\n* [Práticas recomendadas para criar um aplicativo GitHub](/pt/apps/creating-github-apps/about-creating-github-apps/best-practices-for-creating-a-github-app)"}