PII aus OpenAI-API-Aufrufen schwaerzen

Senden Sie keine Namen, E-Mails und Geheimnisse mehr an OpenAI. Erfahren Sie, wie Sie PII aus jedem OpenAI-API-Aufruf mit einer Proxy-basierten Sicherheitsschicht schwaerzen koennen — ohne Code-Aenderungen.

Das Problem: PII gelangt ueber OpenAI-API-Aufrufe nach aussen

Jeder chat.completions.create-Aufruf sendet Ihren Prompt an die Server von OpenAI. Wenn dieser Prompt vom Benutzer eingereichte Texte enthaelt — Support-Tickets, Formulareingaben, CRM-Daten, medizinische Unterlagen — ist die Wahrscheinlichkeit hoch, dass Namen, E-Mail-Adressen, Telefonnummern und andere personenbezogene Daten (PII) enthalten sind.

const response = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [
    {
      role: "user",
      content: `Summarize this support ticket:

      From: Sarah Chen <sarah.chen@acme.com>
      Phone: (415) 555-0142
      Account: 4532-8891-2201-6644
      SSN: 521-44-8832

      My order #38291 hasn't arrived. I live at
      742 Evergreen Terrace, Springfield, IL 62704.
      Please help — my API key is sk-abc123secret.`,
    },
  ],
});

Diese einzelne Anfrage hat gerade einen Namen, eine E-Mail-Adresse, eine Telefonnummer, eine Kreditkartennummer, eine SSN, eine Privatadresse und einen API Key an einen externen Dienst gesendet. Unter DSGVO, CCPA und HIPAA ist das ein Compliance-Vorfall.

So sieht PII in OpenAI-Payloads aus

Die API von OpenAI akzeptiert Freitextfelder im messages-Array. Jedes Feld, in das Ihre Benutzer tippen koennen, ist ein Vektor fuer PII-Leakage:

  • Namen und E-Mails in Support-Kontexten
  • Telefonnummern und Adressen aus CRM-Daten
  • Kreditkartennummern aus zahlungsbezogenen Prompts
  • SSNs und Steuer-IDs in Finanz- oder HR-Workflows
  • API Keys und Tokens, die versehentlich von Entwicklern eingefuegt wurden
  • Quellcode mit fest eingebauten Zugangsdaten

Der Authorization: Bearer sk-...-Header selbst ist sicher — er enthaelt Ihren OpenAI Key und wird benoetigt. Das Problem ist, was im Request Body steckt.

Die Loesung: Proxy-basierte Schwaerzung mit Grepture

Grepture ist ein Open-Source-Sicherheitsproxy, der zwischen Ihrer Anwendung und OpenAI sitzt. Jede Anfrage wird auf PII, Geheimnisse und sensible Muster gescannt, bevor sie Ihre Infrastruktur verlaesst. Sensible Daten werden mit umkehrbaren Token maskiert — und in der Antwort wiederhergestellt, sodass Ihre Anwendung normal funktioniert.

Ihr Code aendert sich nicht. Ihre Prompts bleiben nuetzlich. Das Modell sieht niemals echte PII.

Einrichtung in 3 Minuten

1. SDK installieren

npm install @grepture/sdk

2. API Key erhalten

Registrieren Sie sich unter grepture.com/en/pricing — der kostenlose Plan umfasst 1.000 Anfragen/Monat. Kopieren Sie Ihren API Key aus dem Dashboard.

3. OpenAI-Client einbinden

import OpenAI from "openai";
import { Grepture } from "@grepture/sdk";

const grepture = new Grepture({
  apiKey: process.env.GREPTURE_API_KEY!,
  proxyUrl: "https://proxy.grepture.com",
});

const openai = new OpenAI({
  ...grepture.clientOptions({
    apiKey: process.env.OPENAI_API_KEY!,
    baseURL: "https://api.openai.com/v1",
  }),
});

// Every request is now scanned and protected
const response = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: userInput }],
});

Das war's. clientOptions() gibt ein Konfigurationsobjekt zurueck, das den Traffic ueber den Grepture Proxy leitet. Ihr OpenAI Key wird sicher ueber den X-Grepture-Auth-Forward-Header weitergeleitet — OpenAI authentifiziert Ihre Anfragen weiterhin wie gewohnt.

Was erkannt wird

Grepture wird im Free-Tier mit ueber 50 Erkennungsmustern und im Pro-Tier mit ueber 80 ausgeliefert:

KategorieBeispieleTier
Persoenliche IdentifikatorenNamen, E-Mails, Telefonnummern, SSNs, GeburtsdatenFree (Regex), Pro (AI)
FinanzdatenKreditkartennummern, IBANs, BankleitzahlenFree
ZugangsdatenAPI Keys, Bearer Tokens, Passwoerter, Connection StringsFree
Netzwerk-IdentifikatorenIP-Adressen, MAC-AdressenFree
Freitext-PIINamen, Organisationen und Adressen in unstrukturiertem TextPro (lokale AI-Modelle)
Adversarial InputsPrompt-Injection-VersucheBusiness

Die gesamte Erkennung laeuft auf der Grepture-Infrastruktur — es werden keine Daten an weitere Drittanbieter weitergeleitet.

Maskieren und Wiederherstellen: umkehrbare Schwaerzung

Grepture entfernt PII nicht einfach nur — es kann sensible Werte durch Token ersetzen, den bereinigten Prompt an OpenAI senden und dann die Originalwerte in der Antwort wiederherstellen.

Was OpenAI sieht:

Summarize this support ticket:
From: [PERSON_1] <[EMAIL_1]>
Phone: [PHONE_1]
Account: [CREDIT_CARD_1]
...

Was Ihre App zurueckbekommt:

The customer Sarah Chen (sarah.chen@acme.com) is
asking about order #38291 which hasn't been delivered
to 742 Evergreen Terrace, Springfield, IL 62704.

Das Modell verarbeitet saubere Daten. Ihre Anwendung erhaelt die vollstaendige, personalisierte Antwort. Keine PII erreicht jemals OpenAI.

Streaming-Unterstuetzung

Grepture verarbeitet die Server-Sent Events von OpenAI nativ. Wenn Sie stream: true verwenden, detokenisiert der Proxy die Chunks in Echtzeit — kein Puffern der gesamten Antwort, kein Latenz-Nachteil.

const stream = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: userInput }],
  stream: true,
});

for await (const chunk of stream) {
  // Tokens are restored in real time
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}

Naechste Schritte