Escanee la entrada del usuario en busca de PII antes de almacenarla con una llamada API
Detecte y redacte correos electrónicos, números de teléfono, números de seguro social, tarjetas de crédito y direcciones IP en texto antes de que lleguen a su base de datos. API de detección de PII gratuita sin necesidad de cuenta.
Un cliente envía un ticket de soporte y pega su número de tarjeta de crédito en la descripción. Un usuario completa un formulario de comentarios e incluye su número de Seguro Social. Una herramienta interna registra el cuerpo completo de la solicitud y ahora su agregador de registros almacena direcciones de correo electrónico y números de teléfono que nunca pediste.
Esta es la forma más común en que las empresas recopilan PII que no necesitan. No es una solicitud de función salió mal; es una entrada de texto libre que hace lo que hace la entrada de texto libre. Y según el artículo 5(1)(c) del RGPD, almacenar datos personales que no necesita viola el principio de minimización de datos.
La solución: escanee el texto en busca de PII *antes* de que llegue a su base de datos. Una llamada API detecta correos electrónicos, números de teléfono, números de seguro social, números de tarjetas de crédito, direcciones IP y fechas de nacimiento.
Una llamada API para detectar PII
Envía cualquier texto al /v1/pii/detect punto final. La API lo escanea y devuelve cada
La PII coincide con su tipo, posición y una versión enmascarada.
curl -X POST https://api.botoi.com/v1/pii/detect \\
-H "Content-Type: application/json" \\
-d '{
"text": "My name is John Smith, call me at 555-123-4567 or email john@example.com"
}'
Respuesta:
{
"success": true,
"data": {
"found": true,
"count": 3,
"findings": [
{
"type": "email",
"value": "john@example.com",
"start": 56,
"end": 72,
"masked": "j***@e******.com"
},
{
"type": "phone",
"value": "555-123-4567",
"start": 37,
"end": 49,
"masked": "***-***-4567"
}
]
}
}
La API encontró dos elementos de PII en la entrada: una dirección de correo electrónico y un número de teléfono. Cada hallazgo incluye
las posiciones de los caracteres (start y end) para que puedas reemplazar, redactar,
o marcar la subcadena exacta.
Tipos de PII admitidos
Type Example match Masked output
───────────── ───────────────────────── ─────────────────────
email john@example.com j***@e******.com
phone 555-123-4567 ***-***-4567
ssn 123-45-6789 ***-**-6789
credit_card 4111111111111111 ************1111
ip_address 192.168.1.42 ***.***.***.42
date_of_birth 1990-05-15 ****-**-15
Cada tipo devuelve un masked versión que preserva suficiente contexto para identificar el
categoría de datos sin exponer el valor completo.
Construya un escáner previo al almacenamiento
El punto de integración de mayor valor está justo antes de escribir la entrada del usuario en su base de datos. Este ejemplo de Node.js escanea los campos del ticket de soporte y rechaza los envíos que contienen PII.
import express from "express";
const app = express();
app.use(express.json());
async function detectPII(text) {
const res = await fetch("https://api.botoi.com/v1/pii/detect", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ text }),
});
return res.json();
}
app.post("/support-tickets", async (req, res) => {
const { subject, body } = req.body;
// Scan both fields before saving
const subjectScan = await detectPII(subject);
const bodyScan = await detectPII(body);
if (subjectScan.data.found || bodyScan.data.found) {
const allFindings = [
...(subjectScan.data.findings || []),
...(bodyScan.data.findings || []),
];
return res.status(422).json({
error: "PII detected in submission",
findings: allFindings.map((f) => ({
type: f.type,
masked: f.masked,
})),
});
}
// Safe to store; no PII found
await saveTicket({ subject, body });
res.status(201).json({ created: true });
});
Cuando un usuario envía un ticket que contiene PII, obtiene una respuesta 422 que enumera lo que se encontró. (usando valores enmascarados, no datos sin procesar). Pueden eliminar la información confidencial y volver a enviarla. Su base de datos nunca ve la PII.
Este enfoque funciona para cualquier forma: formularios de contacto, encuestas de retroalimentación, sistemas de comentarios, notas internas. En cualquier lugar donde los usuarios escriban texto libre, puede aparecer PII.
Redactar antes de iniciar sesión
Rechazar PII funciona para formularios de cara al usuario. Pero para registros, mensajes de error y pistas de auditoría, desea conservar el texto mientras elimina las partes sensibles. Esta función reemplaza cada Coincidencia de PII con su versión enmascarada.
async function redactPII(text) {
const res = await fetch("https://api.botoi.com/v1/pii/detect", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ text }),
});
const { data } = await res.json();
if (!data.found) return text;
// Replace each finding with its masked version
let redacted = text;
// Process findings from end to start so positions stay valid
const sorted = [...data.findings].sort((a, b) => b.start - a.start);
for (const finding of sorted) {
redacted =
redacted.slice(0, finding.start) +
finding.masked +
redacted.slice(finding.end);
}
return redacted;
}
// Usage
const logMessage = "User john@example.com reported issue from 192.168.1.42";
const safe = await redactPII(logMessage);
console.log(safe);
// "User j***@e******.com reported issue from ***.***.***.42"
La función procesa los hallazgos desde el final de la cadena hacia atrás. Esto mantiene el carácter posiciones válidas ya que la longitud de la cuerda cambia durante el reemplazo. El resultado es un registro seguro cadena donde se conserva el significado pero los datos personales están enmascarados.
Coloque esto en su proceso de registro, middleware de informes de errores o cualquier sistema que capture texto generado por el usuario.
Cumplimiento del RGPD: escanea campos de texto libre automáticamente
El principio de minimización de datos del RGPD (Artículo 5(1)(c)) requiere que usted recopile solo los datos personales datos que necesita para un propósito específico. Los campos de texto libre son la mayor brecha en la mayoría de los casos de cumplimiento. estrategias porque no se puede predecir qué escribirán los usuarios.
Este middleware Express escanea campos configurables a través de múltiples rutas:
async function gdprScanMiddleware(req, res, next) {
const fieldsToScan = ["message", "notes", "description", "comment"];
const findings = [];
for (const field of fieldsToScan) {
if (req.body[field]) {
const scan = await detectPII(req.body[field]);
if (scan.data.found) {
findings.push(
...scan.data.findings.map((f) => ({
field,
type: f.type,
masked: f.masked,
}))
);
}
}
}
if (findings.length > 0) {
return res.status(422).json({
error: "Personal data detected. Remove PII before submitting.",
findings,
});
}
next();
}
// Apply to routes that accept free-text input
app.post("/feedback", gdprScanMiddleware, feedbackHandler);
app.post("/comments", gdprScanMiddleware, commentHandler);
app.post("/contact", gdprScanMiddleware, contactHandler);
Adjunte el middleware a cualquier ruta que acepte entrada de texto libre. Escanea los campos que especifiques, y si se encuentra PII, la solicitud se rechaza con un mensaje de error claro antes de almacenar cualquier dato.
Esto le brinda un control auditable al que puede señalar durante una revisión del RGPD: "Las entradas de texto libre son escaneado en busca de PII en la capa API. Los envíos que contengan datos personales se rechazarán antes de su almacenamiento."
Dónde agregar el escaneo de PII a su pila
- Middleware API. Escanee los cuerpos de las solicitudes antes de que lleguen a su lógica empresarial. Capta PII en el punto de entrada de su sistema.
- Validación de formulario. Llame a la API del lado del cliente o del servidor antes de enviar el formulario. Brinde a los usuarios la oportunidad de eliminar la PII ellos mismos.
- Tubería de registro. Redacte la PII en los mensajes de registro antes de que lleguen a su agregador de registros. Evita que los datos confidenciales se propaguen por su infraestructura.
- Exportación de datos. Escanee exportaciones CSV o JSON antes de enviarlas a terceros. Un punto de control más antes de que los datos abandonen su sistema.
- Chat y mensajería. Escanee mensajes en herramientas internas o chat de cara al cliente antes de que se almacenen en su historial de mensajes.
La API procesa el texto en la memoria en la red perimetral de Cloudflare y lo descarta después de responder. No se almacenan ni registran datos por parte de botoi. Puedes verificar esto marcando el Documentación API para las garantías de privacidad del terminal.
FAQ
- ¿Qué tipos de PII detecta la API?
- La API detecta seis tipos: direcciones de correo electrónico, números de teléfono, números de Seguro Social (SSN), números de tarjetas de crédito, direcciones IP y fechas de nacimiento. Cada hallazgo incluye el tipo, el valor bruto, la posición del carácter y una versión enmascarada.
- ¿La API de detección de PII es gratuita?
- Sí. El acceso anónimo está disponible a 5 solicitudes por minuto con limitación de velocidad basada en IP. No se requiere clave API, ni cuenta, ni tarjeta de crédito. Los planes pagos ofrecen límites de tarifas más altos.
- ¿La API almacena o registra el texto que envío?
- No. La API se ejecuta en Cloudflare Workers en el borde. Su texto se procesa en la memoria y se descarta después de que se devuelve la respuesta. No se escribe nada en el disco ni se registra.
- ¿Puedo utilizar esto para cumplir con el RGPD?
- La API le ayuda a identificar la PII antes del almacenamiento, lo que respalda la minimización de datos según el artículo 5(1)(c) del RGPD. Es una herramienta técnica, no un asesoramiento legal. Combínelo con las políticas de protección de datos de su organización y consulte a un profesional legal si tiene preguntas sobre cumplimiento.
- ¿Qué tan precisa es la detección?
- La API utiliza coincidencia de patrones optimizada para formatos comunes (números de teléfono de EE. UU., direcciones de correo electrónico estándar, números de tarjetas de crédito válidos para Luhn, etc.). Capta los patrones de PII más comunes. Para formatos específicos de dominio o identificadores fuera de EE. UU., pruebe con sus propios datos para confirmar la cobertura.
Empieza a construir con botoi
150+ endpoints de API para consultas, procesamiento de texto, generacion de imagenes y utilidades para desarrolladores. Plan gratuito, sin tarjeta de credito.