PCrisk.com
Centro assistenza webmaster

Aggiungi il tuo Trust Badge
in due minuti.

Anteprima del badge qui, poi prendi il codice pronto dalla dashboard PCrisk e incollalo nel sito. Questa guida copre configurazione, personalizzazione e cosa fare se il badge non viene visualizzato.

Per iniziare

Anteprima e installazione del badge

Prova gli stili qui sotto per vedere esattamente cosa vedranno i visitatori. Quando sei pronto, il tuo codice personalizzato ti aspetta nella dashboard: non servono competenze di programmazione.

1

Anteprima dello stile

Scegli stile, dimensione e colore qui sotto per vedere il badge dal vivo. Questa è solo un'anteprima: non serve accedere.

2

Copia il codice dalla dashboard

Accedi e PCrisk ti fornisce uno snippet pronto con lo stile scelto già incluso: funziona su ogni dominio del tuo account.

3

Incolla, salva e pubblica

Aggiungilo al sito. Quando il dominio supera la scansione giornaliera, il badge appare automaticamente.

Stile
Dimensione
Tema
Posizione
Anteprima live

Il codice di installazione è nella dashboard

Quando accedi, il designer della dashboard genera uno snippet pronto da incollare con lo stile scelto già incluso. Il badge rileva automaticamente il dominio su cui viene eseguito: lo stesso snippet funziona su tutti i domini del tuo account e viene mostrato solo dove c’è un abbonamento attivo e una scansione giornaliera pulita.

Installa con AI nella dashboard
Preferisci Cursor, Claude, Copilot o ChatGPT? Accedi e copia un prompt pronto, abbinato al badge e al posizionamento, che lo aggiunge al tuo sito.
Accedi per ottenere il prompt

Niente cookie, niente tracciamento, ~7 KB. Il badge si carica dopo la pagina (quindi non la rallenta mai), non memorizza nulla sui visitatori e non imposta cookie.

Il badge appare solo quando l'ultima scansione è pulita. Se ti sei appena registrato, attendi un po' che la prima scansione finisca. Uno spazio vuoto significa semplicemente “non ancora confermato come pulito”, non che il codice sia rotto.

Dove incollarlo

Guide piattaforma

Due modi per aggiungere il badge: installa il nostro plugin oppure incolla lo snippet dalla dashboard. Scegli la piattaforma qui sotto: in entrambi i casi bastano pochi minuti.

WordPress

Più semplice: installa il plugin gratuito, senza codice:

  1. Nel pannello WordPress vai a Plugin → Aggiungi nuovo.
  2. Cerca PCrisk Trust Badge.
  3. Fai clic su Installa ora, poi Attiva.
  4. Apri Trust Badge nel menu admin, collega il sito, poi scegli uno stile e dove mostrare il badge. L’anteprima live mostra esattamente cosa vedranno i visitatori.
Vedi su WordPress.org

Usi WooCommerce? Il plugin lo rileva automaticamente e aggiunge posizioni per lo store: pagina negozio, pagine prodotto, carrello e checkout, oltre al punto visibile su tutto il sito. Niente altro da installare.

Non puoi installare plugin? Incolla invece lo snippet dal pannello in un’area codice del footer, per esempio il gratuito “WPCode” oppure Aspetto → Editor file del tema (fai prima un backup).

ShopifyProssimamente

La nostra app Shopify è in arrivo. È in sviluppo ora: installazione con un clic, senza codice del tema, con posizionamenti per pagine prodotto, carrello e checkout. Fino al rilascio, puoi aggiungere il badge con lo snippet qui sotto.

Nel frattempo:

  1. Nell'admin Shopify vai a Negozio online → Temi.
  2. Nel tema attuale fai clic su ⋯ -> Modifica codice.
  3. Apri layout/theme.liquid e incolla lo snippet dalla dashboard subito prima della chiusura </body> .
  4. Salva. Il badge appare in ogni pagina del tuo negozio.
Wix
  1. Vai a Impostazioni → Codice personalizzato nella dashboard del sito.
  2. Fai clic su + Aggiungi codice personalizzato, incolla lo snippet e impostalo per il caricamento su Tutte le pagine, posizionato in Body - fine.
  3. Applica e pubblica.
Squarespace
  1. Vai a Impostazioni → Avanzate → Code Injection.
  2. Incolla lo snippet nel riquadro Footer .
  3. Salva. (Code Injection richiede un piano Business o superiore.)
Webflow, Framer e HTML personalizzato

Webflow: Impostazioni progetto → Codice personalizzato → incolla nel riquadro Footer Code → pubblica.

Framer: Impostazioni sito → Generale → Codice personalizzato → Fine del tag <body>.

Siti codificati a mano: incolla lo snippet subito prima di </body> nel file template o layout.

Personalizzalo

Personalizza il badge

Le tue scelte sono in data-* attributi nel posizionamento dello snippet <div> - il designer della dashboard li imposta tutti quando genera il tuo codice. Per cambiarne lo stile in seguito, scegli lì un nuovo aspetto e incolla lo snippet aggiornato sopra quello vecchio. Ecco cosa controlla ogni attributo.

AttributoValoriFunzione
data-styleshield, ribbon, minimal, bubbleForma e layout complessivi del badge.
data-sizesmall, medium, largeDimensione complessiva del badge.
data-themelight, dark, autoSi adatta allo sfondo del tuo sito. auto segue la modalità chiara o scura del tuo sito.
data-positionbottom-right, bottom-left, top-right, top-leftFissa il badge a quell’angolo dello schermo - funziona con qualsiasi stile. Se lo ometti, il badge viene mostrato in linea nel suo <div>.

Lo vuoi in un punto preciso, ad esempio a metà checkout? Il <div> nel tuo snippet È il punto del badge - inseriscilo dove vuoi che appaia il badge (riserva anche lo spazio del badge, così il layout non si sposta mai). Vuoi badge in più punti? Incolla altri div; il tag script deve comparire solo una volta. I badge flottanti - qualsiasi stile con data-position - ignorano dove si trova il loro div: si fissano all’angolo che scegli.

Risoluzione dei problemi

Il badge non appare?

Segui questi passaggi in ordine - i primi due risolvono la grande maggioranza dei casi.

Attendi un momento - e verifica che la tua ultima scansione sia pulita

Il badge viene mostrato solo quando la tua scansione giornaliera più recente è pulita. È intenzionale - mantiene intatto il significato del badge, così non viene mai mostrato su un sito compromesso.

Se lo hai appena installato:

  1. Controlla la tua dashboard PCrisk - c’è scritto “Badge attivo” accanto al tuo dominio?
  2. Se una scansione è ancora in attesa, aspetta che finisca, poi aggiorna la pagina.
  3. Se il tuo sito è stato segnalato, risolvi il problema; il badge tornerà automaticamente dopo la prossima scansione pulita.
Il tuo sito ha una Content Security Policy (avanzato)

La buona notizia: 9 siti su 10 possono saltare questo passaggio. Una Content Security Policy (CSP) è un’impostazione di sicurezza avanzata che devi attivare intenzionalmente. Se non ne hai mai sentito parlare, quasi certamente non ne hai una - e questo non è il tuo problema.

Pensa a una CSP come a una lista degli invitati per il tuo sito web - lascia entrare solo i servizi che hai approvato. Se ne hai una, aggiungi PCrisk all’elenco con queste voci:

Consenti questi elementi nella tua CSP
script-src  https://scanner.pcrisk.com
connect-src https://scanner.pcrisk.com
style-src   'unsafe-inline'

Il style-src la riga serve solo se la tua policy limita gli stili (ad es. imposta style-src o solo default-src): il badge applica il suo design tramite un elemento inline <style> , quindi senza di esso il badge si carica ma resta invisibile.

Percorsi rapidi:

plugin di sicurezza WordPress (Wordfence, Really Simple Security, ecc.): apri le impostazioni e aggiungi queste voci nella sezione Content Security Policy.
Cloudflare: il tuo sito → Security → Settings → la tua regola CSP → aggiungi queste voci.
Wix / Squarespace / Shopify standard: niente da fare - questi non usano policy personalizzate, quindi il badge funziona subito.

Non sei sicuro o ancora non appare? Copia questo messaggio e invialo a chi gestisce il tuo sito (sviluppatore o supporto hosting): saprà esattamente cosa fare:

Inoltra a sviluppatore / host
Ciao - sto aggiungendo un trust badge PCrisk al nostro sito. Se abbiamo una Content-Security-Policy, consenti queste due sorgenti per permetterne il caricamento: script-src https://scanner.pcrisk.com e connect-src https://scanner.pcrisk.com. Se la nostra policy blocca gli stili inline, consenti anche 'unsafe-inline' in style-src. Grazie!
Un ad blocker o un'estensione privacy lo nasconde

Alcuni ad blocker aggressivi o estensioni privacy (o browser come Brave con protezioni rigide) possono bloccare script di terze parti. Per verificare, apri il tuo sito in una finestra privata/in incognito con estensioni disattivate, oppure metti temporaneamente in pausa il blocker.

Questo riguarda solo la piccola quota di visitatori che usa questi strumenti: la maggior parte vedrà il badge normalmente. Il badge non imposta cookie e non traccia nulla, quindi è raro.

Verifica che il badge sia su un dominio aggiunto

Il badge controlla il dominio esatto su cui è caricato. Se hai aggiunto example.com ma lo snippet è in esecuzione su un sottodominio diverso (come shop.example.com), un URL di staging, o localhost, non troverà una corrispondenza.

Assicurati che la pagina che mostra il badge sia su un dominio aggiunto nel tuo pannello. Ti serve su più sottodomini? Aggiungi ciascuno al tuo account.

Badge inline: hai aggiunto il contenitore?

Badge inline (qualsiasi stile senza data-position) vengono mostrati nel punto indicato <div class="pcrisk-badge"> nel tuo snippet: assicurati che quel div sia presente nella pagina insieme al tag script (alcuni page builder rimuovono i div ma mantengono gli script). Senza div e senza data-* attributi nel tag script, il motore non sa dove mostrare il badge.

Perché ispira fiducia

Come lo verificano i visitatori

Un badge che chiunque può falsificare non ispira fiducia. Il nostro è verificabile in modo indipendente: è questo che lo rende utile da mostrare.

Il clic apre un report live

Ogni badge è cliccabile. I visitatori arrivano al tuo report pubblico su scanner.pcrisk.com - ospitato da noi, non da te - con l'ultima scansione e il punteggio di fiducia.

Indipendente per design

Poiché il report si trova su un dominio che i visitatori non controllano, il risultato è affidabile, come il lucchetto del browser che è indipendente dal sito dietro di esso.

Suggerimento: il link al report è condivisibile da solo. Usalo in fatture, pagine partner o email di supporto quando devi dimostrare lo stato di sicurezza attuale del tuo sito.

Se viene rilevato qualcosa

Cosa succede se viene rilevata una minaccia

Non mostrerai mai un sigillo “verificato” su un sito compromesso.

Ti avvisiamo subito

Nel momento in cui una scansione segnala un problema, ricevi un'email dettagliata: gravità, cosa è stato trovato, dove e come risolverlo.

Il badge si nasconde automaticamente

Il tuo badge viene rimosso automaticamente finché il problema non viene risolto e ricompare non appena una scansione successiva conferma che il sito è di nuovo pulito.

Per sviluppatori · Pro & Business

Avvisi Slack & webhook

Ricevi gli stessi avvisi che inviamo via email - minaccia rilevata, tutto ok, scansione non completata - inviati a Slack o al tuo endpoint, negli stessi momenti. Configura entrambi nella dashboard in Impostazioni → Integrazioni avvisi.

Slack

In Slack, crea un Incoming Webhook per il canale che vuoi (Slack: App → Incoming Webhooks → Aggiungi a un canale), incolla l' hooks.slack.com URL nella dashboard e premi Invia test Slack. Configurazione completata: nessun codice richiesto.

Webhook

Noi inviamo JSON via POST al tuo endpoint HTTPS. Quattro tipi di evento:

alert.opened - una scansione ha segnalato il sito (punteggio sotto 70); il badge è sospeso.
alert.resolved - una scansione successiva è risultata pulita; il badge è ripristinato.
scan.failed - la scansione giornaliera non ha potuto completarsi (sito irraggiungibile); inviata una volta per interruzione.
test - il Invia test webhook pulsante.

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

Ogni richiesta include tre header: Content-Type: application/json, X-PCrisk-Event (tipo di evento), e X-PCrisk-Signature - sha256= seguito dall’HMAC SHA-256 esadecimale del corpo grezzo della richiesta, calcolato con il signing secret mostrato nella dashboard. Verificalo prima di fidarti della consegna.

Semantica di consegna: attendiamo fino a 5 secondi una risposta e consideriamo qualsiasi 2xx come accettato; una consegna non riuscita viene ritentata una volta, ~15 secondi dopo, poi scartata. Tratta i webhook come notifiche, non come registro: la dashboard è lo stato di riferimento.

Verifica sul corpo grezzo. La firma copre i byte esatti che inviamo. Se il tuo framework analizza il JSON prima che tu possa leggere il corpo grezzo (es. un express.json()), serializzare di nuovo l’oggetto analizzato non riprodurrà gli stessi byte: acquisisci il corpo grezzo, come in ogni esempio sotto.

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

Stai cambiando endpoint? Salva il nuovo URL nella dashboard e invia un test: il signing secret resta lo stesso per il tuo account. Gli avvisi sono per incidente (uno alert.opened per episodio sotto 70, non uno per scansione), quindi il tuo canale non sarà sommerso da un sito che resta segnalato.

Per sviluppatori · Pro & Business

REST API

Importa domini, punteggi, cronologia scansioni e avvisi nelle tue dashboard, report e nel monitoraggio. Accesso in lettura su Pro; il piano Business aggiunge la gestione dei domini. L’API espone solo tuoi domini monitorati.

Autenticazione

Crea una chiave nella dashboard in Impostazioni → Chiavi API (viene mostrata una sola volta: memorizziamo solo un hash) e inviala come token Bearer. Le chiavi ereditano i permessi dal tuo piano attuale e, se ne revochi una nella dashboard, viene disattivata subito.

Richiesta di esempio
curl https://scanner.pcrisk.com/api/v1/domains   -H "Authorization: Bearer pcrisk_live_YOUR_KEY"
Risposta
{
  "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
    }
  ]
}

Endpoint

GET /api/v1 - rilevamento: il tuo piano e livello.
GET /api/v1/domains - tutti i tuoi domini con punteggio attuale, tipo di minaccia e stato del badge.
GET /api/v1/domains/{domain} - un dominio.
GET /api/v1/domains/{domain}/history - cronologia dei punteggi di scansione (la profondità dipende dal tuo piano).
GET /api/v1/alerts - ultimi avvisi di minaccia su tutti i domini, aperti e risolti.
POST /api/v1/domains (Business) - aggiungi un dominio; il monitoraggio parte subito. Body: {"domain": "example.com"}.
DELETE /api/v1/domains/{domain} (Business) - rimuovi un dominio; le scansioni si fermano, il badge non viene più mostrato.

Prova

Incolla una chiave API dalla dashboard (Impostazioni → Chiavi API) e richiama qui qualsiasi endpoint di lettura. La chiave viene usata solo per questa richiesta, verso questo sito: nulla viene salvato e la richiesta conta nel tuo limite di rate come qualsiasi altra.

Convenzioni: ogni risposta è JSON con success e anche data o codice.errore + messaggio.errore (401 chiave non valida, 403 piano/livello, 404 non tuo, 429 limite di richieste raggiunto). Il limite è 60 richieste/minuto per chiave - controlla gli header X-RateLimit-Remaining e Retry-After .

Push + pull: abbina l'API a avvisi webhook - i webhook ti avvisano appena qualcosa cambia, l'API ti fornisce lo stato completo attuale ogni volta che lo richiedi. Non esiste volutamente alcun endpoint per analizzare domini arbitrari di terze parti.

Hai ancora bisogno di aiuto?

Saremo lieti di esaminare la tua configurazione specifica. Inviaci l'indirizzo del tuo sito web e cosa stai riscontrando.