PCrisk.com
Centre d’aide webmaster

Ajoutez votre Trust Badge
en deux minutes.

Prévisualisez votre badge ici, puis récupérez votre code prêt à l’emploi depuis votre tableau de bord PCrisk et collez-le sur votre site. Ce guide couvre l’installation, la personnalisation et les solutions si votre badge ne s’affiche pas.

Premiers pas

Prévisualisez & installez votre badge

Essayez les styles ci-dessous pour voir exactement ce que verront vos visiteurs. Quand vous êtes prêt, votre code personnalisé vous attend dans votre tableau de bord - aucune compétence en code requise.

1

Prévisualisez votre style

Choisissez un style, une taille et une couleur ci-dessous pour voir votre badge en direct. Ceci est juste un aperçu - aucune connexion requise.

2

Copiez votre code depuis le tableau de bord

Connectez-vous et PCrisk vous fournit un extrait prêt à l’emploi avec le style choisi intégré - il fonctionne sur tous les domaines de votre compte.

3

Collez, enregistrez & publiez

Ajoutez-le à votre site. Une fois que votre domaine a passé son analyse quotidienne, le badge apparaît automatiquement.

Style
Taille
Thème
Position
Aperçu en direct

Votre code d’installation est dans votre tableau de bord

Quand vous vous connectez, le concepteur du tableau de bord génère un extrait prêt à coller avec le style choisi intégré. Le badge détecte automatiquement le domaine sur lequel il s’exécute : le même extrait fonctionne sur tous les domaines de votre compte, et il ne s’affiche que là où il y a un abonnement actif et une analyse quotidienne propre.

Installer avec l’IA dans votre tableau de bord
Vous préférez Cursor, Claude, Copilot ou ChatGPT ? Connectez-vous et copiez une invite prête à l’emploi, adaptée à votre badge et à son emplacement, qui l’ajoute à votre site pour vous.
Connectez-vous pour obtenir votre invite

Sans cookies, sans suivi, ~7 KB. Le badge se charge après votre page (il ne la ralentit donc jamais), ne stocke rien sur vos visiteurs et ne définit aucun cookie.

Le badge n’apparaît que lorsque votre dernière analyse est propre. Si vous venez de vous inscrire, laissez un peu de temps à votre première analyse pour se terminer. Un espace vide signifie simplement “pas encore confirmé comme propre”, pas que le code est cassé.

Où le coller

Guides par plateforme

Deux façons d’ajouter le badge : installez notre plugin ou collez l’extrait depuis votre tableau de bord. Choisissez votre plateforme ci-dessous : dans les deux cas, cela prend quelques minutes.

WordPress

Le plus simple : installez l’extension gratuite, sans code :

  1. Dans votre tableau de bord WordPress, allez à Extensions → Ajouter.
  2. Rechercher PCrisk Trust Badge.
  3. Cliquez sur Installer maintenant, puis Activer.
  4. Ouvrez Trust Badge dans le menu d’administration, connectez votre site, puis choisissez un style et l’emplacement du badge. L’aperçu en direct montre exactement ce que verront les visiteurs.
Voir sur WordPress.org

Vous utilisez WooCommerce ? L’extension le détecte automatiquement et ajoute des emplacements boutique — page boutique, pages produit, panier et paiement — en plus de l’emplacement global du site. Rien d’autre à installer.

Impossible d’installer des extensions ? Collez plutôt l’extrait de code depuis votre tableau de bord dans une zone de code du pied de page — par exemple la version gratuite “WPCode” extension, ou Apparence → Éditeur de fichiers du thème (faites d’abord une sauvegarde).

ShopifyBientôt

Notre app Shopify arrive bientôt. Elle est en cours de développement : installation en un clic, sans code de thème, avec des emplacements pour les pages produit, panier et paiement. En attendant, vous pouvez ajouter le badge avec l’extrait ci-dessous.

En attendant :

  1. Dans l’admin Shopify, allez à Boutique en ligne → Thèmes.
  2. Sur votre thème actuel, cliquez sur ⋯ -> Modifier le code.
  3. Ouvrez layout/theme.liquid et collez l’extrait depuis votre tableau de bord juste avant la balise fermante </body> .
  4. Enregistrer. Le badge apparaît sur chaque page de votre boutique.
Wix
  1. Allez dans Paramètres → Code personnalisé dans le tableau de bord de votre site.
  2. Cliquez sur + Ajouter du code personnalisé, collez l’extrait et réglez-le pour qu’il se charge sur Toutes les pages, placé dans Body - fin.
  3. Appliquer & publier.
Squarespace
  1. Allez dans Paramètres → Avancé → Injection de code.
  2. Collez l’extrait dans la zone Pied de page .
  3. Enregistrez. (L’injection de code nécessite un forfait Business ou supérieur.)
Webflow, Framer et HTML personnalisé

Webflow : Paramètres du projet → Code personnalisé → collez dans Code du pied de page → publier.

Framer : Paramètres du site → Général → Code personnalisé → Fin de la balise <body>.

Sites codés à la main : collez l’extrait juste avant </body> dans votre fichier de modèle ou de mise en page.

Personnalisez-le

Personnalisez votre badge

Vos choix sont enregistrés comme data-* attributs sur l’emplacement de l’extrait <div> - le concepteur du tableau de bord les définit tous lors de la génération de votre code. Pour modifier le style plus tard, choisissez-y un nouveau look et collez l’extrait mis à jour sur l’ancien. Voici ce que contrôle chaque attribut.

AttributValeursRôle
data-styleshield, ribbon, minimal, bubbleForme et disposition générales du badge.
data-sizesmall, medium, largeTaille générale du badge.
data-themelight, dark, autoAdaptez-le au fond de votre site. auto suit le mode clair ou sombre de votre site.
data-positionbottom-right, bottom-left, top-right, top-leftFixe le badge à ce coin de l’écran - fonctionne avec n’importe quel style. Si vous l’omettez, le badge s’affiche en ligne dans son <div>.

Vous le voulez à un endroit précis, comme au milieu du paiement ? Le <div> dans votre extrait EST l’emplacement du badge - placez-le là où le badge doit apparaître (il réserve même l’espace du badge pour que votre mise en page ne bouge jamais). Vous voulez des badges à plusieurs endroits ? Collez plus de div ; la balise script n’a besoin d’apparaître qu’une seule fois. Les badges flottants - tout style avec data-position - ignorent l’emplacement de leur div : ils se fixent au coin choisi.

Dépannage

Le badge ne s’affiche pas ?

Suivez ces étapes dans l’ordre - les deux premières résolvent la grande majorité des cas.

Patientez un instant - et vérifiez que votre dernier scan est propre

Le badge ne s’affiche que si votre dernier scan quotidien est propre. C’est intentionnel - cela préserve la signification du badge, afin qu’il ne soit jamais affiché sur un site compromis.

Si vous venez de l’installer :

  1. Vérifiez votre tableau de bord PCrisk - est-ce que « Badge actif » apparaît à côté de votre domaine ?
  2. Si un scan est encore en attente, attendez qu’il se termine, puis actualisez votre page.
  3. Si votre site a été signalé, corrigez le problème ; le badge reviendra automatiquement après le prochain scan propre.
Votre site a une Content Security Policy (avancé)

Bonne nouvelle : 9 sites sur 10 peuvent ignorer ceci. Une Content Security Policy (CSP) est un paramètre de sécurité avancé que vous devez activer volontairement. Si vous n’en avez jamais entendu parler, vous n’en avez presque certainement pas - et ce n’est pas votre problème.

Voyez une CSP comme une liste d’invités pour votre site web - elle n’autorise que les services que vous avez approuvés. Si vous en avez une, ajoutez simplement PCrisk à la liste avec ces entrées :

Autorisez ceci dans votre CSP
script-src  https://scanner.pcrisk.com
connect-src https://scanner.pcrisk.com
style-src   'unsafe-inline'

Le style-src cette ligne n’est nécessaire que si votre politique limite les styles (par ex. si elle définit style-src ou seulement default-src) : le badge applique son apparence via un <style> inline, donc sans lui le badge se charge mais reste invisible.

Accès rapides :

Extension de sécurité WordPress (Wordfence, Really Simple Security, etc.) : ouvrez ses paramètres et ajoutez ces entrées dans la section Content Security Policy.
Cloudflare : votre site → Security → Settings → votre règle CSP → ajoutez ces entrées.
Wix / Squarespace / Shopify standard : rien à faire - ils n’utilisent pas de politiques personnalisées, donc le badge fonctionne simplement.

Pas sûr, ou il n’apparaît toujours pas ? Copiez ce message et envoyez-le à la personne qui gère votre site (votre développeur ou le support de l’hébergement) - elle saura exactement quoi faire :

Transférer au développeur / hébergeur
Bonjour - j’ajoute un badge de confiance PCrisk à notre site. Si nous avons une Content-Security-Policy, veuillez autoriser ces deux sources pour qu’il puisse se charger : script-src https://scanner.pcrisk.com et connect-src https://scanner.pcrisk.com. Si notre politique bloque les styles inline, autorisez aussi 'unsafe-inline' en style-src. Merci !
Un bloqueur de pub ou une extension de confidentialité le masque

Certains bloqueurs de pub agressifs ou extensions de confidentialité (ou des navigateurs comme Brave avec une protection stricte) peuvent bloquer les scripts tiers. Pour vérifier, ouvrez votre site dans une fenêtre privée/incognito avec les extensions désactivées, ou mettez temporairement votre bloqueur en pause.

Cela ne concerne qu’une petite part des visiteurs utilisant ce type d’outils - la plupart verront le badge normalement. Le badge lui-même ne définit aucun cookie et ne suit rien, ce qui rend ce cas rare.

Vérifiez que le badge est sur un domaine ajouté

Le badge vérifie le domaine exact sur lequel il est chargé. Si vous avez ajouté example.com mais que le snippet s’exécute sur un sous-domaine différent (comme shop.example.com), une URL de préproduction, ou localhost, il ne trouvera pas de correspondance.

Assurez-vous que la page affichant le badge est sur un domaine ajouté dans votre tableau de bord. Besoin de l’afficher sur plusieurs sous-domaines ? Ajoutez-les chacun à votre compte.

Badge inline : avez-vous ajouté le conteneur ?

Les badges intégrés (tout style sans data-position) s’affichent à l’emplacement <div class="pcrisk-badge"> de votre extrait - assurez-vous que cette div est bien présente sur la page avec la balise script (certains constructeurs de pages suppriment les div mais gardent les scripts). Sans div et sans data-* attributs sur la balise script, le moteur n’a nulle part où afficher le rendu.

Pourquoi cela inspire confiance

Comment vos visiteurs le vérifient

Un badge que n’importe qui peut falsifier n’inspire aucune confiance. Le nôtre est vérifiable indépendamment - c’est ce qui le rend utile à afficher.

Le clic ouvre un rapport en direct

Chaque badge est cliquable. Les visiteurs arrivent sur votre rapport public à scanner.pcrisk.com - hébergé par nous, pas par vous - affichant le dernier scan et le score de confiance.

Indépendant par conception

Comme le rapport se trouve sur un domaine que les visiteurs ne contrôlent pas, le résultat est fiable - de la même façon que le cadenas du navigateur est indépendant du site qu’il protège.

Astuce : le lien du rapport peut être partagé tel quel. Ajoutez-le à des factures, pages partenaires ou e-mails d’assistance chaque fois que vous devez prouver l’état de sécurité actuel de votre site.

Si quelque chose est détecté

Que se passe-t-il si une menace est détectée

Vous n’afficherez jamais un sceau “vérifié” sur un site compromis.

Nous vous alertons vite

Dès qu’un scan signale un problème, vous recevez un e-mail détaillé - gravité, élément détecté, emplacement et correctif.

Le badge se masque automatiquement

Votre badge est retiré automatiquement jusqu’à la résolution du problème - et revient dès qu’un scan de suivi confirme que votre site est de nouveau propre.

Pour les développeurs · Pro & Business

Alertes Slack & webhook

Recevez les mêmes alertes que par e-mail - menace détectée, tout est OK, scan impossible à terminer - envoyées vers Slack ou votre propre endpoint, aux mêmes moments. Configurez les deux dans votre tableau de bord sous Paramètres → Intégrations d’alertes.

Slack

Dans Slack, créez un Incoming Webhook pour le canal souhaité (Slack : Apps → Incoming Webhooks → Ajouter à un canal), collez l’ hooks.slack.com URL dans votre tableau de bord, puis appuyez sur Envoyer un test Slack. C’est toute la configuration - aucun code nécessaire.

Webhooks

Nous envoyons du JSON par POST à votre endpoint HTTPS. Quatre types d’événements :

alert.opened - une analyse a signalé le site (score inférieur à 70) ; le badge est suspendu.
alert.resolved - une analyse ultérieure est revenue propre ; le badge est rétabli.
scan.failed - l’analyse quotidienne n’a pas pu se terminer (site inaccessible) ; envoyé une fois par panne.
test - le Envoyer un test webhook bouton.

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

Chaque requête comporte trois en-têtes : Content-Type: application/json, X-PCrisk-Event (type d’événement), et X-PCrisk-Signature - sha256= suivi du HMAC SHA-256 hexadécimal du corps brut de la requête, signé avec le secret de signature affiché dans votre tableau de bord. Vérifiez-le avant de faire confiance à une livraison.

Sémantique de livraison : nous attendons jusqu’à 5 secondes une réponse et comptons tout 2xx comme accepté ; une livraison échouée est retentée une fois, ~15 secondes plus tard, puis abandonnée. Traitez les webhooks comme des notifications, pas comme un registre - votre tableau de bord fait foi.

Vérifiez par rapport au corps brut. La signature couvre les octets exacts que nous envoyons. Si votre framework analyse le JSON avant que vous puissiez lire le corps brut (p. ex. un express.json()), re-sérialiser l’objet analysé ne va pas reproduire les mêmes octets - capturez le corps brut, comme dans chaque exemple ci-dessous.

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

Vous changez d’endpoint ? Enregistrez la nouvelle URL dans le tableau de bord et envoyez un test - le secret de signature reste le même pour votre compte. Les alertes sont par incident (une alert.opened par épisode sous 70, pas une par analyse), donc votre canal ne sera pas inondé par un site qui reste signalé.

Pour les développeurs · Pro & Business

API REST

Intégrez vos domaines, scores, historique d’analyse et alertes dans vos propres tableaux de bord, rapports et outils de surveillance. Accès en lecture sur Pro ; le forfait Business ajoute la gestion des domaines. L’API n’expose jamais que les vôtres domaines surveillés.

Authentification

Créez une clé dans votre tableau de bord sous Paramètres → Clés API (elle n’est affichée qu’une fois - nous ne stockons qu’un hash) et envoyez-la comme jeton Bearer. Les clés héritent de leurs autorisations de votre offre actuelle, et leur révocation dans le tableau de bord les désactive immédiatement.

Exemple de requête
curl https://scanner.pcrisk.com/api/v1/domains   -H "Authorization: Bearer pcrisk_live_YOUR_KEY"
Réponse
{
  "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 - découverte : votre offre et niveau.
GET /api/v1/domains - tous vos domaines avec score actuel, type de menace et état du badge.
GET /api/v1/domains/{domain} - un domaine.
GET /api/v1/domains/{domain}/history - historique du score d’analyse (profondeur selon votre offre).
GET /api/v1/alerts - dernières alertes de menace sur tous les domaines, ouvertes et résolues.
POST /api/v1/domains (Business) - ajoute un domaine ; la surveillance démarre immédiatement. Corps : {"domain": "example.com"}.
DELETE /api/v1/domains/{domain} (Business) - supprime un domaine ; les analyses s’arrêtent, le badge ne s’affiche plus.

Essayer

Collez une clé API depuis votre tableau de bord (Paramètres → Clés API) et appelez ici n’importe quel endpoint en lecture. La clé n’est utilisée que pour cette requête, vers ce site - rien n’est stocké, et la requête compte dans votre limite de débit comme les autres.

Conventions : chaque réponse est du JSON avec success et soit data ou code.erreur + message.erreur (401 clé invalide, 403 plan/niveau, 404 pas à vous, 429 limite atteinte). La limite est de 60 requêtes/minute par clé - surveillez les en-têtes X-RateLimit-Remaining et Retry-After .

Push + pull : associez l’API à des alertes webhook - les webhooks vous informent dès qu’un changement survient, l’API vous donne l’état actuel complet à chaque demande. Il n’existe volontairement aucun endpoint pour analyser des domaines tiers arbitraires.

Besoin d’aide ?

Nous pouvons examiner votre configuration. Envoyez-nous l’adresse de votre site web et ce que vous constatez.