From f022ddad0e6ca7d367dbe30e896bc3555ba62d76 Mon Sep 17 00:00:00 2001 From: "gabriel.alves" Date: Thu, 2 Jul 2026 13:40:19 -0300 Subject: [PATCH] Add Axur Leakstream integration guide and update related documentation --- src/content/docs/en/pages/guides/index.mdx | 1 + .../marketplace/integrations/leakstream.mdx | 200 ++++++++++++++++++ .../understand-azion-integrations.mdx | 1 + src/content/docs/pt-br/pages/guias/guides.mdx | 1 + .../marketplace/integrations/leakstream.mdx | 198 +++++++++++++++++ .../integracoes-visao-geral.mdx | 1 + 6 files changed, 402 insertions(+) create mode 100644 src/content/docs/en/pages/guides/marketplace/integrations/leakstream.mdx create mode 100644 src/content/docs/pt-br/pages/guias/marketplace/integrations/leakstream.mdx diff --git a/src/content/docs/en/pages/guides/index.mdx b/src/content/docs/en/pages/guides/index.mdx index 0a2401fdd0..5fa0163fa5 100644 --- a/src/content/docs/en/pages/guides/index.mdx +++ b/src/content/docs/en/pages/guides/index.mdx @@ -208,6 +208,7 @@ permalink: /documentation/products/guides/ - [How to install the A/B tests through Azion Marketplace](/en/documentation/products/guides/ab-testing-marketplace/) - [How to install the Add Request ID integration through Azion Marketplace](/en/documentation/products/guides/add-request-id-header/) - [How to install the Axur Cardstream integration through Azion Marketplace](/en/documentation/products/guides/axur-cardstream/) +- [How to install the Axur Leakstream integration through Azion Marketplace](/en/documentation/products/guides/axur-leakstream/) - [How to install the Azion Bot Manager Lite integration from Azion Marketplace](/en/documentation/products/guides/bot-manager-lite/) - [How to install DataDome Bot Protection through Azion Marketplace](/en/documentation/products/guides/datadome-bot-protection/) - [How to install the Content Targeting integration through Azion Marketplace](/en/documentation/products/guides/content-targeting-integration/) diff --git a/src/content/docs/en/pages/guides/marketplace/integrations/leakstream.mdx b/src/content/docs/en/pages/guides/marketplace/integrations/leakstream.mdx new file mode 100644 index 0000000000..16d8493536 --- /dev/null +++ b/src/content/docs/en/pages/guides/marketplace/integrations/leakstream.mdx @@ -0,0 +1,200 @@ +--- +title: "How to Install the Axur Leakstream Integration" +description: >- + Protect your e-commerce from checker attacks and credential fraud with the Axur Leakstream integration, which monitors leaked credentials across the internet. +meta_tags: 'marketplace, security, integrations, e-commerce, credential leak, axur, leakstream' +namespace: docs_guides_axur_leakstream +permalink: /documentation/products/guides/axur-leakstream/ +--- + +import LinkButton from 'azion-webkit/linkbutton' + +**Axur Leakstream** is a Firewall integration that monitors internet activity in search of leaked credentials. It helps your e-commerce avoid checker attacks and protect your users' credentials by checking whether a given username and password combination has been exposed in any known data breach. + +When a login request arrives at the edge, the function extracts the username and password from the request body, queries the Axur Leakstream API, and appends custom headers to the request. Your **Rules Engine** can then use those headers to take any action you need — such as blocking the request, redirecting the user, or triggering a secondary verification flow. + +--- + +## Requirements + +To start using this integration, you need to: + +- Create an [Axur account](https://www.axur.com/en-us/) and subscribe to a Leakstream plan that matches the size of your customer base. +- Obtain an Axur **API Token** after your account is enabled. + +--- + +## Getting the integration + +To install this integration: + +1. Access [Azion Console](/en/documentation/products/guides/how-to-access-azion-console/) > **Marketplace**. +2. On the Marketplace homepage, select the **Leakstream** card. +3. On the integration page, click the **Install** button. + +You'll see a message indicating that your integration was successfully installed. + +:::tip +You can search for any integration by browsing through the cards, using the filters, or typing a keyword in the search bar. +::: + +--- + +## Configuring the integration + +Once you've installed the **Axur Leakstream** integration, complete the steps below to configure it. + +### Setting up a Firewall + +Follow the steps: + +1. On the upper-left corner, open the **Products menu** and select **Firewall** in the **Secure** section. +2. Click the **+ Firewall** button. +3. Give an easy-to-remember name to your firewall. +4. Enable the **Functions** switch in the **Modules** section. + - This action gives access to functions on your firewall. +5. Click the **Save** button. + +Done. Now you've instantiated the firewall for your function and have access to functions on your firewall. + +:::caution[Warning] +If a product or module is activated, it could generate usage-related costs. Check the [pricing page](/en/documentation/products/pricing/) for more information. +::: + +### Setting up the Firewall function + +While still on the **Firewall** page: + +1. Select the **Functions Instances** tab. +2. Click the **+ Function Instance** button. +3. Give an easy-to-remember name to your instance. +4. On the dropdown menu, select the **Axur Leakstream** function. +5. In the **Arguments** box, pass your variables: + +```json +{ + "api_key": "YourAxurAPIKey", + "username_field": "user", + "password_field": "password", + "password_hash_type": "sha256", + "execute_hashing": false, + "leakstream_timeout": 60000 +} +``` + +Where: + +| Variable | Mandatory | Description | +| ---- | ---- | ---- | +| `api_key` | Yes | The API Token from your Axur account. Required unless the `AXUR_API_V1_LEAKSTREAM_API_KEY` environment variable is set | +| `username_field` | Yes | The name of the request body field that contains the username. Required unless the `AXUR_API_V1_LEAKSTREAM_USERNAME_FIELD` environment variable is set | +| `password_field` | No | The name of the request body field that contains the password | +| `password_hash_type` | No | The hashing algorithm used for the password. Accepted values: `md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512` | +| `execute_hashing` | No | When set to `true`, the function automatically hashes the password using SHA-256 before sending it to the Axur API. Recommended when the frontend does not hash the password | +| `leakstream_timeout` | No | Connection timeout (in milliseconds) for requests to the Axur API. Defaults to `60000` (60 seconds) | + +:::note +The function supports the following request content types: `application/json`, `application/x-www-form-urlencoded`, and `multipart/form-data`. Requests with other content types are passed through without calling the Axur API. +::: + +6. Click the **Save** button. + +### Setting up the Rules Engine + +The Leakstream integration uses a **two-rule pattern** in the Rules Engine: + +- **Rule 1** — triggers the Leakstream function on the target endpoint (for example, a login or account-creation form). +- **Rule 2** — triggers a second, custom response function on the same endpoint. This function reads the custom headers set by Leakstream and decides whether to block the request or allow it through. + +The Firewall Rules Engine criteria does not support matching on custom request headers. Because of this, the blocking logic must live inside a second function that reads the `axur-leakstream-leaked` header from the request object and returns the appropriate response. + +The table below describes the headers the Leakstream function adds to the request object: + +| Header | Value | Description | +| ---- | ---- | ---- | +| `axur-leakstream-leaked` | `true` | The username and password combination was found in a data breach | +| `axur-leakstream-username-leaked` | `true` | The username alone was found in a data breach | +| `axur-leakstream-missing-username` | `true` | The username field was not found in the request body | +| `axur-leakstream-error` | `timeout`, `invalid-content-type`, or an HTTP status code | An error occurred while calling the Axur API | + +#### Rule 1 — Run the Leakstream function + +Still on the **Firewall** page: + +1. Select the **Rules Engine** tab. +2. Click the **+ Rule Engine** button. +3. Give an easy-to-remember name to the rule (for example, `Run Leakstream`). +4. Select a *criteria* to restrict which requests trigger the Leakstream check. + - Example: if `Request Method` *is equal to* `POST` **and** `Request URI` *matches* `/login`. + - This avoids running the check on every request and limits it to login or account-creation endpoints. +5. Below, select **Run Function** as the *behavior* and choose the Leakstream function instance you created earlier. +6. Click the **Save** button. + +#### Rule 2 — Act on the result + +Before creating this rule, you need a second function instance that reads the `axur-leakstream-leaked` header and returns a custom response. For example, the function below returns an HTML warning page when the header is `true`: + +```javascript +async function handleRequest(request) { + const leaked = request.headers.get('axur-leakstream-leaked'); + + if (leaked === 'true') { + const html = ` + + + Warning! + + +

Warning!

+

The combination of username and password provided was found in a data breach. You cannot use it.

+ +`; + return new Response(html, { + status: 403, + headers: { 'content-type': 'text/html;charset=UTF-8' }, + }); + } + + return fetch(request); +} + +addEventListener('fetch', event => { + return event.respondWith(handleRequest(event.request)); +}); +``` + +After creating and instantiating the response function, add the second rule: + +1. Click the **+ Rule Engine** button again. +2. Give an easy-to-remember name to the rule (for example, `Block leaked credentials`). +3. Set the *criteria* to match the **same endpoint** as Rule 1: + - Example: if `Request Method` *is equal to* `POST` **and** `Request URI` *matches* `/login`. +4. Select **Run Function** as the *behavior* and choose the response function instance. +5. Click the **Save** button. + +:::note +The Firewall Rules Engine processes rules in order. Rule 1 (Leakstream) must have a **lower order number** than Rule 2 (response function) so the headers are set before the second function reads them. +::: + +:::tip +Your response function can also read the `axur-leakstream-username-leaked` header to prompt users to change their password even when the exact username/password combination hasn't been confirmed as leaked. +::: + +### Associating the Firewall with your domain + +On the Console, you must now configure your domain so it is protected by your Firewall. + +1. On the **Products menu**, select **Domains**. +2. Click on the domain you want to protect with your **Leakstream** function. +3. In the **Settings** section, click on the `Firewall` selector and choose the Firewall you've just created. +4. Click the **Save** button. + +Done. Now the **Axur Leakstream** integration is running and protecting your users' credentials at the edge. + +--- + +## Related documentation + +- [Azion Integrations reference](/en/documentation/products/marketplace/integrations/) +- [How to install an integration](/en/documentation/products/marketplace/install-an-integration/) +- [How to update an integration](/en/documentation/products/marketplace/update-an-integration/) diff --git a/src/content/docs/en/pages/main-menu/additional-resources/templates-and-integrations/understand-azion-integrations.mdx b/src/content/docs/en/pages/main-menu/additional-resources/templates-and-integrations/understand-azion-integrations.mdx index 6689d1208d..aecf86a318 100644 --- a/src/content/docs/en/pages/main-menu/additional-resources/templates-and-integrations/understand-azion-integrations.mdx +++ b/src/content/docs/en/pages/main-menu/additional-resources/templates-and-integrations/understand-azion-integrations.mdx @@ -139,6 +139,7 @@ Integrations based on Firewall functions cover the following scenarios and use c | Integration | Description | |---|---| | [Axur Cardstream](/en/documentation/products/guides/axur-cardstream/) | Protect your e-commerce from fraud with the Axur Cardstream integration. | +| [Axur Leakstream](/en/documentation/products/guides/axur-leakstream/) | Monitor leaked credentials and protect your users from checker attacks with the Axur Leakstream integration. | | [Send Event to Endpoint](/en/documentation/products/guides/send-event-to-endpoint/) | Stream request data to an HTTP endpoint, taking the request data and transmitting it to a user-defined endpoint via JavaScript fetch API. | | [reCaptcha](/en/documentation/products/guides/recaptcha/) | Protect your domains against bots, monitoring traffic in your website through the Google Dashboard for reCAPTCHA. | | [hCaptcha](/en/documentation/products/guides/hcaptcha/) | Protect your domains against bots, monitoring traffic on your website by using the hCaptcha dashboard. | diff --git a/src/content/docs/pt-br/pages/guias/guides.mdx b/src/content/docs/pt-br/pages/guias/guides.mdx index cd64883252..5aa49fb99f 100644 --- a/src/content/docs/pt-br/pages/guias/guides.mdx +++ b/src/content/docs/pt-br/pages/guias/guides.mdx @@ -212,6 +212,7 @@ permalink: /documentacao/produtos/guias/ - [Como utilizar a integração A/B testing através do Marketplace da Azion](/pt-br/documentacao/produtos/guias/ab-testing-marketplace/) - [Como instalar a integração Add Request ID através do Azion Marketplace](/pt-br/documentacao/produtos/guias/add-request-id-header/) - [Como instalar a integração Axur Cardstream através do Marketplace da Azion](/pt-br/documentacao/produtos/guias/axur-cardstream/) +- [Como instalar a integração Axur Leakstream através do Marketplace da Azion](/pt-br/documentacao/produtos/guias/axur-leakstream/) - [Como instalar o DataDome Bot Protection através do Marketplace da Azion](/pt-br/documentacao/produtos/guias/datadome-bot-protection/) - [Como utilizar a integração Azion Bot Manager Lite através do Marketplace da Azion](/pt-br/documentacao/produtos/guias/bot-manager-lite/) - [Como utilizar a integração Content Targeting através do Marketplace da Azion](/pt-br/documentacao/produtos/guias/content-targeting-integration/) diff --git a/src/content/docs/pt-br/pages/guias/marketplace/integrations/leakstream.mdx b/src/content/docs/pt-br/pages/guias/marketplace/integrations/leakstream.mdx new file mode 100644 index 0000000000..c814f7203d --- /dev/null +++ b/src/content/docs/pt-br/pages/guias/marketplace/integrations/leakstream.mdx @@ -0,0 +1,198 @@ +--- +title: "Instale a integração Axur Leakstream" +description: >- + Proteja seu e-commerce de ataques de checker e fraudes de credenciais com a integração Axur Leakstream, que monitora credenciais vazadas na internet. +meta_tags: 'marketplace, security, integrations, e-commerce, vazamento de credenciais, axur, leakstream' +namespace: docs_guides_axur_leakstream +permalink: /documentacao/produtos/guias/axur-leakstream/ +--- + +**Axur Leakstream** é uma integração de Firewall que monitora atividades na internet em busca de credenciais vazadas. Ela ajuda seu e-commerce a evitar ataques de checker e a proteger as credenciais dos seus usuários, verificando se uma determinada combinação de nome de usuário e senha foi exposta em alguma violação de dados conhecida. + +Quando uma requisição de login chega ao edge, a função extrai o nome de usuário e a senha do corpo da requisição, consulta a API do Axur Leakstream e adiciona cabeçalhos personalizados à requisição. O **Rules Engine** pode então usar esses cabeçalhos para executar qualquer ação necessária — como bloquear a requisição, redirecionar o usuário ou acionar um fluxo de verificação secundário. + +--- + +## Pré-requisitos + +Para começar a usar esta integração, você precisa: + +- Criar uma [conta Axur](https://www.axur.com/pt-br/) e assinar um plano Leakstream compatível com o tamanho da sua base de clientes. +- Obter um **Token API** da Axur após a habilitação da sua conta. + +--- + +## Obtenha a integração + +Para instalar esta integração: + +1. Acesse [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Marketplace**. +2. Na página inicial do Marketplace, selecione o cartão da **Leakstream**. +3. Na página de integração, clique no botão **Install**. + +Você verá uma mensagem indicando que sua integração foi instalada com sucesso. + +:::tip +Você pode procurar qualquer integração navegando pelos cards, usando os filtros ou digitando uma palavra-chave na barra de busca. +::: + +--- + +## Configure a integração + +Depois de instalar a integração **Axur Leakstream**, conclua as etapas abaixo para configurá-la. + +### Configure um Firewall + +Siga estes passos: + +1. No canto superior esquerdo, abra o **Products menu** e selecione **Firewall** na seção **Secure**. +2. Clique no botão **+ Firewall**. +3. Dê um nome fácil de lembrar ao seu firewall. +4. Ative a opção **Functions** na seção **Modules**. + - Esta ação dá acesso a functions no firewall. +5. Clique no botão **Save**. + +Pronto. Agora você instanciou o firewall para sua função e tem acesso a functions em seu firewall. + +:::caution[Atenção] +Se um produto ou módulo estiver ativado, pode gerar custos relacionados ao uso. Consulte a [página de preços](/pt-br/documentacao/produtos/precos/) para obter mais informações. +::: + +### Configure uma função no Firewall + +Enquanto ainda estiver na página do **Firewall**: + +1. Selecione a aba **Functions Instances**. +2. Clique no botão **+ Function Instance**. +3. Dê um nome fácil de lembrar à sua instância. +4. No menu suspenso, selecione a função **Axur Leakstream**. +5. Na caixa **Arguments**, passe suas variáveis: + +```json +{ + "api_key": "YourAxurAPIKey", + "username_field": "user", + "password_field": "password", + "password_hash_type": "sha256", + "execute_hashing": false, + "leakstream_timeout": 60000 +} +``` + +Onde: + +| Variável | Obrigatório | Descrição | +| ---- | ---- | ---- | +| `api_key` | Sim | O Token API da sua conta Axur. Obrigatório, a menos que a variável de ambiente `AXUR_API_V1_LEAKSTREAM_API_KEY` esteja definida | +| `username_field` | Sim | O nome do campo no corpo da requisição que contém o nome de usuário. Obrigatório, a menos que a variável de ambiente `AXUR_API_V1_LEAKSTREAM_USERNAME_FIELD` esteja definida | +| `password_field` | Não | O nome do campo no corpo da requisição que contém a senha | +| `password_hash_type` | Não | O algoritmo de hash usado para a senha. Valores aceitos: `md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512` | +| `execute_hashing` | Não | Quando definido como `true`, a função aplica hash SHA-256 à senha automaticamente antes de enviá-la à API da Axur. Recomendado quando o frontend não aplica hash à senha | +| `leakstream_timeout` | Não | Timeout de conexão (em milissegundos) para requisições à API da Axur. O valor padrão é `60000` (60 segundos) | + +:::note +A função suporta os seguintes tipos de conteúdo nas requisições: `application/json`, `application/x-www-form-urlencoded` e `multipart/form-data`. Requisições com outros tipos de conteúdo são repassadas sem chamar a API da Axur. +::: + +6. Clique no botão **Save**. + +### Configure uma regra no Rules Engine + +A integração Leakstream usa um **padrão de duas regras** no Rules Engine: + +- **Regra 1** — aciona a função Leakstream no endpoint alvo (por exemplo, um formulário de login ou criação de conta). +- **Regra 2** — aciona uma segunda função de resposta personalizada no mesmo endpoint. Essa função lê os cabeçalhos personalizados definidos pelo Leakstream e decide se deve bloquear a requisição ou deixá-la passar. + +Os critérios do Rules Engine do Firewall não suportam correspondência em cabeçalhos de requisição personalizados. Por isso, a lógica de bloqueio deve estar dentro de uma segunda função que lê o cabeçalho `axur-leakstream-leaked` do objeto da requisição e retorna a resposta adequada. + +A tabela abaixo descreve os cabeçalhos que a função Leakstream adiciona ao objeto da requisição: + +| Cabeçalho | Valor | Descrição | +| ---- | ---- | ---- | +| `axur-leakstream-leaked` | `true` | A combinação de nome de usuário e senha foi encontrada em uma violação de dados | +| `axur-leakstream-username-leaked` | `true` | O nome de usuário isolado foi encontrado em uma violação de dados | +| `axur-leakstream-missing-username` | `true` | O campo de nome de usuário não foi encontrado no corpo da requisição | +| `axur-leakstream-error` | `timeout`, `invalid-content-type` ou um código de status HTTP | Ocorreu um erro ao chamar a API da Axur | + +#### Regra 1 — Execute a função Leakstream + +Ainda na página do **Firewall**: + +1. Selecione a aba **Rules Engine**. +2. Clique no botão **+ Rule Engine**. +3. Dê um nome fácil de lembrar à regra (por exemplo, `Executar Leakstream`). +4. Selecione um *criteria* (critério) para restringir quais requisições acionam a verificação do Leakstream. + - Exemplo: if `Request Method` *is equal to* `POST` **and** `Request URI` *matches* `/login`. + - Isso evita executar a verificação em todas as requisições e a limita a endpoints de login ou criação de conta. +5. Abaixo, selecione **Run Function** como *behavior* e escolha a instância da função Leakstream criada anteriormente. +6. Clique no botão **Save**. + +#### Regra 2 — Aja sobre o resultado + +Antes de criar esta regra, você precisa de uma segunda instância de função que leia o cabeçalho `axur-leakstream-leaked` e retorne uma resposta personalizada. Por exemplo, a função abaixo retorna uma página HTML de aviso quando o cabeçalho é `true`: + +```javascript +async function handleRequest(request) { + const leaked = request.headers.get('axur-leakstream-leaked'); + + if (leaked === 'true') { + const html = ` + + + Aviso! + + +

Aviso!

+

A combinação de usuário e senha fornecida foi encontrada em um vazamento de dados. Você não pode utilizá-la.

+ +`; + return new Response(html, { + status: 403, + headers: { 'content-type': 'text/html;charset=UTF-8' }, + }); + } + + return fetch(request); +} + +addEventListener('fetch', event => { + return event.respondWith(handleRequest(event.request)); +}); +``` + +Após criar e instanciar a função de resposta, adicione a segunda regra: + +1. Clique novamente no botão **+ Rule Engine**. +2. Dê um nome fácil de lembrar à regra (por exemplo, `Bloquear credenciais vazadas`). +3. Defina o *criteria* para corresponder ao **mesmo endpoint** da Regra 1: + - Exemplo: if `Request Method` *is equal to* `POST` **and** `Request URI` *matches* `/login`. +4. Selecione **Run Function** como *behavior* e escolha a instância da função de resposta. +5. Clique no botão **Save**. + +:::note +O Rules Engine do Firewall processa as regras em ordem. A Regra 1 (Leakstream) deve ter um **número de ordem menor** do que a Regra 2 (função de resposta) para que os cabeçalhos sejam definidos antes de a segunda função lê-los. +::: + +:::tip +Sua função de resposta também pode ler o cabeçalho `axur-leakstream-username-leaked` para solicitar que os usuários alterem sua senha, mesmo quando a combinação exata de nome de usuário e senha não foi confirmada como vazada. +::: + +### Associe o Firewall ao seu domínio + +No Console, você deve agora configurar seu domínio para que ele seja protegido pelo seu Firewall. + +1. No **Products menu**, selecione **Domains**. +2. Clique no domínio que você deseja proteger com sua função **Leakstream**. +3. Na seção **Settings**, clique no seletor de `Firewall` e escolha o Firewall que você acabou de criar. +4. Clique no botão **Save**. + +Pronto. Agora a integração **Axur Leakstream** está em execução e protegendo as credenciais dos seus usuários no edge. + +--- + +## Documentação relacionada + +- [Referência de Integrações da Azion](/pt-br/documentacao/produtos/marketplace/integracoes/) +- [Como instalar uma integração](/pt-br/documentacao/produtos/marketplace/instalar-uma-integracao/) +- [Como atualizar uma integração](/pt-br/documentacao/produtos/marketplace/atualizar-uma-integracao/) diff --git a/src/content/docs/pt-br/pages/menu-principal/recursos-adicionais/templates-e-integracoes/integracoes-visao-geral.mdx b/src/content/docs/pt-br/pages/menu-principal/recursos-adicionais/templates-e-integracoes/integracoes-visao-geral.mdx index a4c8623666..9b205aab02 100644 --- a/src/content/docs/pt-br/pages/menu-principal/recursos-adicionais/templates-e-integracoes/integracoes-visao-geral.mdx +++ b/src/content/docs/pt-br/pages/menu-principal/recursos-adicionais/templates-e-integracoes/integracoes-visao-geral.mdx @@ -138,6 +138,7 @@ As integrações baseadas nas funções do Applications abrangem os seguintes ce | Integração | Descrição | |---|---| | [Axur Cardstream](/pt-br/documentacao/produtos/guias/axur-cardstream/) | Proteja seu e-commerce de fraudes com a integração Axur Cardstream. | +| [Axur Leakstream](/pt-br/documentacao/produtos/guias/axur-leakstream/) | Monitore credenciais vazadas e proteja seus usuários de ataques de checker com a integração Axur Leakstream. | | [Send Event to Endpoint](/pt-br/documentacao/produtos/guias/send-event-to-endpoint/) | Esta solução permite transmitir dados de uma solicitação para um endpoint HTTP, recolhendo os dados de requisição e os transmitindo para um endpoint definido pelo usuário por meio de uma API Javascript. | | [reCaptcha](/pt-br/documentacao/produtos/guias/recaptcha/) | Proteja seus domínios contra bots, monitorando o tráfego em seu site através do Google Dashboard para reCAPTCHA. | | [hCaptcha](/pt-br/documentacao/produtos/guias/hcaptcha/) | Proteja seus domínios contra bots, monitorando o tráfego em seu site usando o painel do hCaptcha. |