PCrisk.com
Centro de ayuda para webmasters

Añade tu Trust Badge
en dos minutos.

Previsualiza aquí tu insignia y luego copia el código listo desde tu panel de PCrisk para pegarlo en tu sitio. Esta guía cubre la instalación, la personalización y qué hacer si tu insignia no se muestra.

Primeros pasos

Previsualiza e instala tu insignia

Prueba los estilos de abajo para ver exactamente lo que verán tus visitantes. Cuando estés listo, tu código personalizado te espera en tu panel; no necesitas saber programar.

1

Previsualiza tu estilo

Elige abajo un estilo, tamaño y color para ver tu insignia en vivo. Esto es solo una vista previa; no necesitas iniciar sesión.

2

Copia tu código desde el panel

Inicia sesión y PCrisk te da un fragmento listo con el estilo elegido integrado; funciona en todos los dominios de tu cuenta.

3

Pega, guarda y publica

Añádelo a tu sitio. Cuando tu dominio pase su escaneo diario, la insignia aparecerá automáticamente.

Estilo
Tamaño
Tema
Ubicación
Vista previa

Tu código de instalación está en tu panel

Al iniciar sesión, el diseñador del panel genera un fragmento listo para pegar con el estilo que elegiste integrado. La insignia detecta automáticamente el dominio donde se ejecuta; el mismo fragmento funciona en todos los dominios de tu cuenta y solo se muestra donde hay una suscripción activa y un escaneo diario limpio.

Instalar con AI en tu panel
¿Prefieres Cursor, Claude, Copilot o ChatGPT? Inicia sesión y copia un prompt listo, adaptado a tu insignia y ubicación, para que lo añada a tu sitio por ti.
Inicia sesión para obtener tu prompt

Sin cookies, sin rastreo, ~7 KB. La insignia carga después de tu página (así que nunca la ralentiza), no almacena nada sobre tus visitantes y no establece cookies.

La insignia solo aparece cuando tu último escaneo está limpio. Si acabas de registrarte, espera un poco a que termine tu primer escaneo. Un espacio en blanco simplemente significa “aún no se confirmó como limpio”, no que el código esté roto.

Dónde pegarlo

Guías por plataforma

Dos formas de añadir la insignia: instala nuestro plugin o pega el fragmento desde tu panel. Elige tu plataforma abajo; en ambos casos tarda unos minutos.

WordPress

Lo más fácil: instala el plugin gratis, sin código:

  1. En tu panel de WordPress ve a Plugins → Añadir nuevo.
  2. Busca PCrisk Trust Badge.
  3. Haz clic en Instalar ahora, luego Activar.
  4. Abre Trust Badge en el menú de administración, conecta tu sitio y luego elige un estilo y dónde aparece la insignia. La vista previa en vivo muestra exactamente lo que verán los visitantes.
Ver en WordPress.org

¿Usas WooCommerce? El plugin lo detecta automáticamente y añade ubicaciones para la tienda: página de tienda, páginas de producto, carrito y pago, además de la ubicación general de tu sitio. No hace falta instalar nada más.

¿No puedes instalar plugins? Pega el fragmento de tu panel en un área de código del pie de página; por ejemplo, el gratuito “WPCode” o Apariencia → Editor de archivos del tema (haz una copia de seguridad primero).

ShopifyPróximamente

Nuestra app de Shopify está en camino. Ya está en desarrollo: instalación con un clic, sin código del tema, con ubicaciones en páginas de producto, carrito y pago. Hasta entonces, puedes añadir la insignia con el fragmento de abajo.

Mientras tanto:

  1. En el panel de Shopify ve a Tienda online → Temas.
  2. En tu tema actual haz clic en ⋯ -> Editar código.
  3. Abre layout/theme.liquid y pega el fragmento desde tu panel justo antes del cierre de </body> .
  4. Guardar. La insignia aparece en todas las páginas de tu tienda.
Wix
  1. Ve a Ajustes → Código personalizado en el panel de tu sitio.
  2. Haz clic en + Añadir código personalizado, pega el fragmento y configúralo para cargar en Todas las páginas, colocado en Body - final.
  3. Aplicar y publicar.
Squarespace
  1. Ve a Ajustes → Avanzado → Inyección de código.
  2. Pega el fragmento en el pie de página cuadro.
  3. Guardar. (La inyección de código requiere un plan Business o superior.)
Webflow, Framer y HTML personalizado

Webflow: Ajustes del proyecto → Código personalizado → pegar en el código del pie cuadro → publicar.

Framer: Ajustes del sitio → General → Código personalizado → Final de la etiqueta <body>.

Sitios con código propio: pega el fragmento justo antes de </body> en tu archivo de plantilla o diseño.

Personalízalo

Personaliza tu insignia

Tus opciones se guardan como data-* atributos en la ubicación del fragmento <div> - el diseñador del panel los configura todos al generar tu código. Para cambiar el estilo después, elige allí un nuevo aspecto y pega el fragmento actualizado sobre el anterior. Esto controla cada atributo.

AtributoValoresQué hace
data-styleshield, ribbon, minimal, bubbleLa forma y disposición general de la insignia.
data-sizesmall, medium, largeTamaño general de la insignia.
data-themelight, dark, autoCombina con el fondo de tu sitio. auto sigue el modo claro u oscuro de tu sitio.
data-positionbottom-right, bottom-left, top-right, top-leftFija la insignia en esa esquina de la pantalla; funciona con cualquiera style. Si lo omites, la insignia se muestra en línea dentro de su <div>.

¿La quieres en un punto exacto, como a mitad del pago? El <div> en tu fragmento ES el lugar de la insignia: colócalo donde deba aparecer (incluso reserva su espacio para que tu diseño no se desplace). ¿Quieres insignias en varios lugares? Pega más divs; la etiqueta script solo debe aparecer una vez. Las insignias flotantes, de cualquier estilo con data-position - ignoran dónde está su div: se fijan en la esquina que elijas.

Solución de problemas

¿La insignia no aparece?

Revísalos en este orden: los dos primeros resuelven la gran mayoría de los casos.

Dale un momento y comprueba que tu último análisis esté limpio

La insignia solo se muestra cuando tu análisis diario más reciente está limpio. Esto es intencional: mantiene intacto el significado de la insignia, para que nunca se muestre en un sitio comprometido.

Si acabas de instalarla:

  1. Revisa tu panel de PCrisk - ¿aparece “Insignia activa” junto a tu dominio?
  2. Si un análisis sigue pendiente, espera a que termine y luego actualiza tu página.
  3. Si tu sitio fue marcado, resuelve el problema; la insignia volverá automáticamente tras el siguiente análisis limpio.
Tu sitio tiene una Content Security Policy (avanzado)

La buena noticia: 9 de cada 10 sitios pueden omitir esto. Una Content Security Policy (CSP) es una configuración de seguridad avanzada que debes activar expresamente. Si nunca has oído hablar de ella, casi seguro que no tienes una, y este no es tu problema.

Piensa en una CSP como una lista de invitados para tu sitio web - solo deja entrar servicios que hayas aprobado. Si tienes una, solo añade PCrisk a la lista con estas entradas:

Permite esto en tu CSP
script-src  https://scanner.pcrisk.com
connect-src https://scanner.pcrisk.com
style-src   'unsafe-inline'

El style-src esta línea solo hace falta si tu política restringe estilos (p. ej., si establece style-src o solo default-src): la insignia aplica su diseño mediante un <style> inline, así que sin él la insignia carga pero queda invisible.

Vías rápidas:

plugin de seguridad de WordPress (Wordfence, Really Simple Security, etc.): abre su configuración y añade estas entradas en la sección Content Security Policy.
Cloudflare: tu sitio → Security → Settings → tu regla CSP → añade estas entradas.
Wix / Squarespace / Shopify estándar: no hay que hacer nada; estos no usan políticas personalizadas, así que la insignia funciona sin más.

¿No estás seguro o aún no aparece? Copia este mensaje y envíaselo a quien gestione tu sitio web (tu desarrollador o soporte de hosting): sabrá exactamente qué hacer:

Reenviar a tu desarrollador / hosting
Hola: estoy añadiendo una insignia de confianza de PCrisk a nuestro sitio. Si tenemos una Content-Security-Policy, permite estas dos fuentes para que pueda cargar: script-src https://scanner.pcrisk.com y connect-src https://scanner.pcrisk.com. Si nuestra política bloquea estilos inline, permite también 'unsafe-inline' en style-src. ¡Gracias!
Un bloqueador de anuncios o extensión de privacidad la está ocultando

Algunos bloqueadores de anuncios o extensiones de privacidad agresivos (o navegadores como Brave con protección estricta) pueden bloquear scripts de terceros. Para comprobarlo, abre tu sitio en una ventana privada/de incógnito con las extensiones desactivadas, o pausa temporalmente tu bloqueador.

Esto solo afecta a la pequeña parte de visitantes que usan esas herramientas; la mayoría verá la insignia con normalidad. La insignia no establece cookies ni rastrea nada, por lo que esto es poco frecuente.

Comprueba que la insignia esté en un dominio añadido

La insignia comprueba el dominio exacto en el que se carga. Si añadiste example.com pero el snippet se ejecuta en un subdominio distinto (como shop.example.com), una URL de staging, o localhost, no encontrará coincidencia.

Asegúrate de que la página que muestra la insignia esté en un dominio que añadiste en tu panel. ¿La necesitas en varios subdominios? Añade cada uno a tu cuenta.

Insignia inline: ¿añadiste el contenedor?

Las insignias en línea (cualquier estilo sin data-position) se muestran en la ubicación <div class="pcrisk-badge"> de tu fragmento; asegúrate de que ese div esté en la página junto con la etiqueta script (algunos creadores de páginas eliminan los divs pero conservan los scripts). Sin div y sin data-* atributos en la etiqueta script, el motor no tiene dónde mostrarlo.

Por qué genera confianza

Cómo lo verifican tus visitantes

Una insignia que cualquiera puede falsificar no genera confianza. La nuestra se puede verificar de forma independiente; eso es lo que hace que valga la pena mostrarla.

Al hacer clic se abre un informe en vivo

Cada insignia se puede pulsar. Los visitantes llegan a tu informe público en scanner.pcrisk.com - alojado por nosotros, no por ti - que muestra el análisis más reciente y la puntuación de confianza.

Independiente por diseño

Como el informe está en un dominio que los visitantes no controlan, el resultado es fiable, igual que el candado del navegador es independiente del sitio que hay detrás.

Consejo: el enlace del informe se puede compartir por sí solo. Úsalo en facturas, páginas de socios o correos de soporte cuando necesites demostrar el estado de seguridad actual de tu sitio.

Si se detecta algo

Qué ocurre si se detecta una amenaza

Nunca mostrarás un sello “verificado” en un sitio comprometido.

Te avisamos rápido

En cuanto un análisis detecta un problema, recibes un correo detallado: gravedad, qué se encontró, dónde y cómo solucionarlo.

La insignia se oculta automáticamente

Tu insignia se elimina automáticamente hasta que se resuelva el problema y vuelve en cuanto un análisis de seguimiento confirma que tu sitio vuelve a estar limpio.

Para desarrolladores · Pro y Business

Alertas de Slack y webhook

Recibe las mismas alertas que enviamos por correo — amenaza detectada, todo despejado, no se pudo completar el análisis — en Slack o en tu propio endpoint, en los mismos momentos. Configura ambos en tu panel en Settings → Integraciones de alertas.

Slack

En Slack, crea un Incoming Webhook para el canal que quieras (Slack: Apps → Incoming Webhooks → Add to a channel), pega la hooks.slack.com URL en tu panel y pulsa Enviar prueba de Slack. Eso es todo; no hace falta código.

Webhooks

Nosotros enviamos JSON por POST a tu endpoint HTTPS. Cuatro tipos de eventos:

alert.opened - un escaneo marcó el sitio (puntuación inferior a 70); la insignia está en pausa.
alert.resolved - un escaneo posterior salió limpio; la insignia se restablece.
scan.failed - el escaneo diario no pudo completarse (sitio inaccesible); se envía una vez por interrupción.
prueba - el Enviar prueba de webhook botón.

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

Cada solicitud incluye tres encabezados: Content-Type: application/json, X-PCrisk-Event (el tipo de evento), y X-PCrisk-Signature - sha256= seguido del HMAC SHA-256 hexadecimal del cuerpo bruto de la solicitud, generado con el secreto de firma que aparece en tu panel. Verifícalo antes de confiar en una entrega.

Semántica de entrega: esperamos hasta 5 segundos una respuesta y contamos cualquier 2xx como aceptado; una entrega fallida se reintenta una vez, ~15 segundos después, y luego se descarta. Trata los webhooks como notificaciones, no como un registro: tu panel es el estado de referencia.

Verifica con el cuerpo bruto. La firma cubre los bytes exactos que enviamos. Si tu framework analiza el JSON antes de que puedas leer el cuerpo bruto (p. ej., un express.json()), volver a serializar el objeto analizado no reproducirá los mismos bytes; captura el cuerpo bruto, como hace cada ejemplo a continuación.

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

¿Vas a cambiar tu endpoint? Guarda la nueva URL en el panel y envía una prueba: el secreto de firma sigue siendo el mismo para tu cuenta. Las alertas son por incidente (una alert.opened por episodio por debajo de 70, no una por escaneo), así que tu canal no se saturará por un sitio que siga marcado.

Para desarrolladores · Pro y Business

REST API

Lleva tus dominios, puntuaciones, historial de escaneo y alertas a tus propios paneles, informes y monitoreo. Acceso de lectura en Pro; el plan Business añade gestión de dominios. La API solo expone propios dominios monitorizados.

Autenticación

Crea una clave en tu panel en Ajustes → Claves API (se muestra una vez; solo guardamos un hash) y envíala como token Bearer. Las claves heredan sus permisos de tu plan actual, y si revocas una en el panel se desactiva al instante.

Solicitud de ejemplo
curl https://scanner.pcrisk.com/api/v1/domains   -H "Authorization: Bearer pcrisk_live_YOUR_KEY"
Respuesta
{
  "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 - descubrimiento: tu plan y nivel.
GET /api/v1/domains - todos tus dominios con puntuación actual, tipo de amenaza y estado de la insignia.
GET /api/v1/domains/{domain} - un dominio.
GET /api/v1/domains/{domain}/history - historial de puntuación del escaneo (la profundidad depende de tu plan).
GET /api/v1/alerts - alertas de amenazas más recientes en todos los dominios, abiertas y resueltas.
POST /api/v1/domains (Business) - añade un dominio; la monitorización empieza de inmediato. Cuerpo: {"domain": "example.com"}.
DELETE /api/v1/domains/{domain} (Business) - elimina un dominio; los escaneos se detienen y la insignia deja de mostrarse.

Pruébalo

Pega una clave API de tu panel (Ajustes → Claves API) y llama aquí a cualquier endpoint de lectura. La clave solo va en esta solicitud, a este sitio; no se guarda nada, y la solicitud cuenta para tu límite de tasa como cualquier otra.

Convenciones: cada respuesta es JSON con success y data o código.error + mensaje.error (401 clave incorrecta, 403 plan/nivel, 404 no es tuyo, 429 límite de tasa alcanzado). El límite es 60 solicitudes/minuto por clave - revisa los encabezados X-RateLimit-Remaining y Retry-After .

Push + pull: combina la API con alertas webhook - los webhooks te avisan en cuanto algo cambia; la API te da el estado actual completo cuando lo pides. Deliberadamente no hay un endpoint para escanear dominios arbitrarios de terceros.

¿Aún necesitas ayuda?

Estaremos encantados de revisar tu configuración específica. Envíanos la dirección de tu sitio web y lo que estás viendo.