PCrisk.com
Centro de Ajuda para Webmasters

Adicione o seu Trust Badge
em dois minutos.

Pré-visualize aqui o seu badge e depois obtenha o código pronto no seu painel PCrisk para o colar no seu site. Este guia cobre a configuração, a personalização e o que fazer se o seu badge não aparecer.

Primeiros passos

Pré-visualize e instale o seu badge

Experimente os estilos abaixo para ver exatamente o que os seus visitantes vão ver. Quando estiver pronto, o seu código personalizado está à sua espera no painel - sem precisar de saber programar.

1

Pré-visualize o seu estilo

Escolha abaixo um estilo, tamanho e cor para ver o seu badge em direto. Isto é apenas uma pré-visualização - não precisa de iniciar sessão.

2

Copie o seu código do painel

Inicie sessão e o PCrisk fornece-lhe um snippet pronto com o estilo escolhido incluído - funciona em todos os domínios da sua conta.

3

Cole, guarde e publique

Adicione-o ao seu site. Assim que o seu domínio passar na análise diária, o badge aparece automaticamente.

Estilo
Tamanho
Tema
Posição
Pré-visualização

O seu código de instalação está no painel

Ao iniciar sessão, o criador do painel gera um snippet pronto a colar com o estilo escolhido incluído. O selo deteta automaticamente o domínio onde é executado - o mesmo snippet funciona em todos os domínios da sua conta e só é apresentado onde existe uma subscrição ativa e uma verificação diária limpa.

Instalar com IA no painel
Prefere Cursor, Claude, Copilot ou ChatGPT? Inicie sessão e copie um prompt pronto - ajustado ao seu selo e posicionamento - que o adiciona ao seu site por si.
Inicie sessão para obter o prompt

Sem cookies, sem rastreio, ~7 KB. O selo carrega depois da sua página (por isso nunca a torna mais lenta), não armazena nada sobre os seus visitantes e não define cookies.

O selo só aparece quando a sua verificação mais recente está limpa. Se acabou de se registar, aguarde um pouco até a primeira verificação terminar. Um espaço em branco significa apenas “ainda não confirmado como limpo” - não que o código esteja com erro.

Onde colar

Guias por plataforma

Duas formas de adicionar o selo: instale o nosso plugin ou cole o snippet do seu painel. Escolha a sua plataforma abaixo — em ambos os casos demora poucos minutos.

WordPress

Mais fácil — instale o plugin gratuito, sem código:

  1. No painel do WordPress, vá a Plugins → Adicionar novo.
  2. Procure por PCrisk Trust Badge.
  3. Clique em Instalar agora, depois Ativar.
  4. Abra Trust Badge no menu de administração, ligue o seu site e depois escolha um estilo e onde o selo aparece. A pré-visualização ao vivo mostra exatamente o que os visitantes vão ver.
Ver no WordPress.org

Usa WooCommerce? O plugin deteta-o automaticamente e adiciona posições na loja — página da loja, páginas de produto, carrinho e checkout — além da posição global do seu site. Nada extra para instalar.

Não consegue instalar plugins? Cole antes o snippet do seu painel numa área de código do rodapé — por exemplo, o gratuito “WPCode” ou Aspeto → Editor de ficheiros do tema (faça uma cópia de segurança primeiro).

ShopifyBrevemente

A nossa app Shopify está a caminho. Está em desenvolvimento — instalação com um clique, sem código no tema, com posições nas páginas de produto, carrinho e checkout. Até lá, pode adicionar o selo com o snippet abaixo.

Entretanto:

  1. No admin do Shopify, vá a Loja online → Temas.
  2. No seu tema atual, clique em ⋯ -> Editar código.
  3. Abra layout/theme.liquid e cole o snippet do seu painel mesmo antes do fecho de </body> .
  4. Guardar. O selo aparece em todas as páginas da sua loja.
Wix
  1. Vá a Definições → Código personalizado no painel do seu site.
  2. Clique em + Adicionar código personalizado, cole o snippet e defina-o para carregar em Todas as páginas, colocado no Body - fim.
  3. Aplicar e publicar.
Squarespace
  1. Vá a Definições → Avançadas → Injeção de código.
  2. Cole o snippet na caixa Rodapé .
  3. Guardar. (A Injeção de código requer um plano Business ou superior.)
Webflow, Framer e HTML personalizado

Webflow: Definições do projeto → Código personalizado → cole na caixa Código do rodapé → publicar.

Framer: Definições do site → Geral → Código personalizado → Fim da tag <body>.

Sites com código manual: cole o snippet imediatamente antes de </body> no seu ficheiro de modelo ou layout.

Personalize

Personalize o seu selo

As suas escolhas ficam como data-* atributos na colocação do snippet <div> - o criador do painel define todos ao gerar o seu código. Para alterar o estilo depois, escolha um novo visual lá e cole o snippet atualizado sobre o antigo. Eis o que cada atributo controla.

AtributoValoresFunção
data-styleshield, ribbon, minimal, bubbleA forma e disposição gerais do badge.
data-sizesmall, medium, largeEscala geral do badge.
data-themelight, dark, autoCombine com o fundo do seu site. auto segue o modo claro ou escuro do seu site.
data-positionbottom-right, bottom-left, top-right, top-leftFixa o badge nesse canto do ecrã - funciona com qualquer estilo. Se o omitir, o badge é mostrado em linha no seu <div>.

Quer colocá-lo num ponto exato, como a meio do checkout? O <div> no seu snippet É o local do badge - coloque-o onde o badge deve aparecer (até reserva o espaço do badge para que o layout nunca mude). Quer badges em vários locais? Cole mais divs; a tag script só precisa de aparecer uma vez. Badges flutuantes - qualquer estilo com data-position - ignoram onde o seu div está: fixam-se no canto que escolher.

Resolução de problemas

O badge não aparece?

Siga estes passos por ordem - os dois primeiros resolvem a grande maioria dos casos.

Aguarde um momento - e confirme que a sua análise mais recente está limpa

O badge só é mostrado quando a sua análise diária mais recente está limpa. Isto é intencional - mantém o significado do badge intacto, para nunca ser mostrado num site comprometido.

Se acabou de o instalar:

  1. Verifique o seu painel PCrisk - aparece “Selo ativo” ao lado do seu domínio?
  2. Se uma análise ainda estiver pendente, aguarde que termine e depois atualize a página.
  3. Se o seu site foi assinalado, resolva o problema; o badge volta automaticamente após a próxima análise limpa.
O seu site tem uma Content Security Policy (avançado)

A boa notícia: 9 em cada 10 sites podem ignorar isto. Uma Content Security Policy (CSP) é uma definição de segurança avançada que tem de ativar deliberadamente. Se nunca ouviu falar disso, quase de certeza que não tem uma - e este não é o seu problema.

Pense numa CSP como uma lista de convidados do seu site - só deixa entrar serviços que aprovou. Se tiver uma, basta adicionar o PCrisk à lista com estas entradas:

Permita isto na sua CSP
script-src  https://scanner.pcrisk.com
connect-src https://scanner.pcrisk.com
style-src   'unsafe-inline'

O style-src a linha só é necessária se a sua política restringir estilos (por ex., definir style-src ou apenas default-src): o selo aplica o seu design através de um elemento <style> , por isso, sem ele, o selo carrega mas fica invisível.

Acessos rápidos:

plugin de segurança WordPress (Wordfence, Really Simple Security, etc.): abra as definições e adicione estas entradas à secção Content Security Policy.
Cloudflare: o seu site → Security → Settings → a sua regra CSP → adicione estas entradas.
Wix / Squarespace / Shopify padrão: nada a fazer - estes não usam políticas personalizadas, por isso o selo funciona logo.

Não tem a certeza, ou ainda não aparece? Copie esta mensagem e envie-a a quem gere o seu site (o seu programador ou suporte de alojamento) - saberão exatamente o que fazer:

Reencaminhar para programador / alojamento
Olá - estou a adicionar um selo de confiança PCrisk ao nosso site. Se tivermos uma Content-Security-Policy, permita estas duas origens para que possa carregar: script-src https://scanner.pcrisk.com e connect-src https://scanner.pcrisk.com. Se a nossa política bloquear estilos inline, permita também 'unsafe-inline' em style-src. Obrigado!
Um bloqueador de anúncios ou extensão de privacidade está a ocultá-lo

Alguns bloqueadores de anúncios ou extensões de privacidade mais agressivos (ou navegadores como o Brave com proteção rigorosa) podem bloquear scripts de terceiros. Para verificar, abra o seu site numa janela privada/anónima com as extensões desativadas, ou pause temporariamente o bloqueador.

Isto afeta apenas a pequena parte dos visitantes que usam essas ferramentas - a maioria verá o selo normalmente. O selo em si não define cookies nem rastreia nada, o que torna isto raro.

Verifique se o selo está num domínio adicionado

O selo verifica o domínio exato onde é carregado. Se adicionou example.com mas o snippet está a correr num subdomínio diferente (como shop.example.com), um URL de staging, ou localhost, não encontrará correspondência.

Certifique-se de que a página que mostra o selo está num domínio que adicionou no seu painel. Precisa dele em vários subdomínios? Adicione cada um à sua conta.

Selo inline: adicionou o contentor?

Emblemas inline (qualquer estilo sem data-position) são renderizados na posição <div class="pcrisk-badge"> do seu snippet - confirme que essa div foi para a página junto com a tag script (alguns construtores de páginas removem divs mas mantêm scripts). Sem div e sem data-* atributos na tag script, o motor não tem onde renderizar.

Porque gera confiança

Como os visitantes verificam

Um emblema que qualquer pessoa pode falsificar não gera confiança. O nosso é verificável de forma independente - é isso que faz valer a pena mostrá-lo.

O clique abre um relatório em direto

Todos os emblemas são clicáveis. Os visitantes chegam ao seu relatório público em scanner.pcrisk.com - alojado por nós, não por si - mostrando a análise mais recente e a pontuação de confiança.

Independente por definição

Como o relatório está num domínio que os visitantes não controlam, o resultado é fiável - tal como o cadeado do navegador é independente do site por trás dele.

Dica: a ligação do relatório pode ser partilhada por si só. Coloque-a em faturas, páginas de parceiros ou emails de suporte sempre que precisar de provar o estado atual de segurança do seu site.

Se algo for encontrado

O que acontece se for detetada uma ameaça

Nunca irá mostrar um selo “verificado” num site comprometido.

Alertamo-lo rapidamente

No momento em que uma análise assinala um problema, recebe um email detalhado - gravidade, o que foi encontrado, onde e como corrigir.

O emblema oculta-se automaticamente

O seu emblema é removido automaticamente até o problema ser resolvido - e volta no momento em que uma análise de seguimento confirma que o seu site está limpo novamente.

Para programadores · Pro & Business

Alertas Slack & webhook

Receba os mesmos alertas que enviamos por email - ameaça encontrada, tudo limpo, a análise não pôde ser concluída - enviados para o Slack ou para o seu próprio endpoint, nos mesmos momentos. Configure ambos no painel em Definições → Integrações de alertas.

Slack

No Slack, crie um Incoming Webhook para o canal pretendido (Slack: Apps → Incoming Webhooks → Add to a channel), cole o hooks.slack.com URL no seu painel e prima Enviar teste do Slack. É toda a configuração - sem código.

Webhooks

Nós enviamos JSON por POST para o seu endpoint HTTPS. Quatro tipos de evento:

alert.opened - uma verificação sinalizou o site (pontuação abaixo de 70); o selo foi pausado.
alert.resolved - uma verificação posterior voltou limpa; o selo foi restaurado.
scan.failed - a verificação diária não pôde ser concluída (site inacessível); enviada uma vez por indisponibilidade.
teste - o Enviar teste de webhook botão.

Exemplo de payload
{
  "event": "alert.opened",
  "domain": "example.com",
  "trust_score": 55,
  "threat_type": "suspicious",
  "severity": "medium",
  "occurred_at": "2026-07-07T08:28:36.874Z"
}

Cada pedido inclui três cabeçalhos: Content-Type: application/json, X-PCrisk-Event (o tipo de evento), e X-PCrisk-Signature - sha256= seguido do HMAC SHA-256 em hex do corpo bruto do pedido, com a signing secret mostrada no seu painel. Verifique-a antes de confiar na entrega.

Semântica de entrega: esperamos até 5 segundos por uma resposta e contamos qualquer 2xx como aceite; uma entrega falhada é repetida uma vez, ~15 segundos depois, e depois descartada. Trate os webhooks como notificações, não como registo - o seu painel é o estado de referência.

Verifique com o corpo bruto. A assinatura cobre os bytes exatos que enviamos. Se a sua framework analisar o JSON antes de poder ler o corpo bruto (por ex., um express.json()), voltar a serializar o objeto analisado não vai reproduzir os mesmos bytes - capture o corpo bruto, como em cada exemplo abaixo.

const crypto = require('crypto');
const express = require('express');
const app = express();

// express.raw keeps the body as the exact bytes we signed
app.post('/hooks/pcrisk', express.raw({ type: 'application/json' }), (req, res) => {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', process.env.PCRISK_WEBHOOK_SECRET)
    .update(req.body) // Buffer
    .digest('hex');
  const given = req.get('X-PCrisk-Signature') || '';
  const ok = given.length === expected.length &&
    crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected));
  if (!ok) return res.status(401).end();

  const event = JSON.parse(req.body);
  console.log(event.event, event.domain, event.trust_score);
  res.status(200).end(); // any 2xx marks the delivery as accepted
});

app.listen(3000);
<?php
$secret   = getenv('PCRISK_WEBHOOK_SECRET');
$raw      = file_get_contents('php://input'); // raw body, before any parsing
$given    = $_SERVER['HTTP_X_PCRISK_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac('sha256', $raw, $secret);

if (!hash_equals($expected, $given)) {
    http_response_code(401);
    exit;
}

$event = json_decode($raw, true);
// $event['event'], $event['domain'], $event['trust_score'], ...
http_response_code(200); // any 2xx marks the delivery as accepted
import hashlib, hmac, os
from flask import Flask, request, abort

app = Flask(__name__)
SECRET = os.environ["PCRISK_WEBHOOK_SECRET"].encode()

@app.post("/hooks/pcrisk")
def pcrisk_hook():
    raw = request.get_data()  # raw body, before parsing
    expected = "sha256=" + hmac.new(SECRET, raw, hashlib.sha256).hexdigest()
    given = request.headers.get("X-PCrisk-Signature", "")
    if not hmac.compare_digest(expected, given):
        abort(401)

    event = request.get_json()
    # event["event"], event["domain"], event["trust_score"], ...
    return "", 200  # any 2xx marks the delivery as accepted

# run with: flask --app hook run --port 3000

Vai mudar o endpoint? Guarde o novo URL no painel e envie um teste - a signing secret mantém-se a mesma para a sua conta. Os alertas são por incidente (um alert.opened por episódio abaixo de 70, não um por verificação), por isso o seu canal não será inundado por um site que continue sinalizado.

Para programadores · Pro & Business

REST API

Traga os seus domínios, pontuações, histórico de verificações e alertas para os seus próprios painéis, relatórios e monitorização. Acesso de leitura no Pro; o Business adiciona gestão de domínios. A API só expõe seus domínios monitorizados.

Autenticação

Crie uma chave no seu painel em Definições → Chaves API (é mostrada uma vez - guardamos apenas um hash) e envie-a como token Bearer. As chaves herdam as permissões do seu plano atual, e revogá-las no painel desativa-as de imediato.

Pedido de exemplo
curl https://scanner.pcrisk.com/api/v1/domains   -H "Authorization: Bearer pcrisk_live_YOUR_KEY"
Resposta
{
  "success": true,
  "data": [
    {
      "domain": "example.com",
      "status": "verified",
      "trust_score": 92,
      "threat_type": "clean",
      "last_scanned": "2026-07-07T06:12:04.000Z",
      "open_alerts": 0,
      "badge_visible": true,
      "badge_live": true
    }
  ]
}

Endpoints

GET /api/v1 - descoberta: o seu plano e nível.
GET /api/v1/domains - todos os seus domínios com pontuação atual, tipo de ameaça e estado do badge.
GET /api/v1/domains/{domain} - um domínio.
GET /api/v1/domains/{domain}/history - histórico da pontuação de análise (a profundidade segue o seu plano).
GET /api/v1/alerts - alertas de ameaça mais recentes em todos os domínios, abertos e resolvidos.
POST /api/v1/domains (Business) - adicione um domínio; a monitorização começa de imediato. Corpo: {"domain": "example.com"}.
DELETE /api/v1/domains/{domain} (Business) - remova um domínio; as análises param, o badge deixa de ser apresentado.

Experimente

Cole uma chave API do seu painel (Definições → Chaves API) e chame aqui qualquer endpoint de leitura. A chave vai apenas neste pedido, para este site - nada é guardado, e o pedido conta para o seu limite de taxa como qualquer outro.

Convenções: cada resposta é JSON com success e data ou código.erro + mensagem.erro (401 chave inválida, 403 plano/nível, 404 não é sua, 429 limite atingido). O limite é 60 pedidos/minuto por chave - veja os cabeçalhos X-RateLimit-Remaining e Retry-After .

Push + pull: combine a API com alertas webhook - os webhooks avisam-no no momento em que algo muda, a API dá-lhe o estado atual completo sempre que pedir. Não existe deliberadamente nenhum endpoint para analisar domínios arbitrários de terceiros.

Ainda precisa de ajuda?

Teremos todo o gosto em analisar a sua configuração específica. Envie-nos o endereço do seu website e o que está a ver.