
Barriera di protezione Prompt-injection per applicazioni LLM. Modello compatto che supera le barriere di protezione open-source più grandi. Niente regex, niente firme. Demo: anton.securelayer7.net
Firewall anti-iniezione di prompt minuscolo per app chat LLM. ~14 MB. Solo CPU. Guardia drop-in tra il tuo input utente e il tuo LLM — gira sulla stessa macchina, niente GPU, niente API, nessun servizio extra.
Costruito dal red-team di SecureLayer7. La maggior parte delle barriere OSS sono centinaia di MB, vogliono una GPU, e ancora non rilevano gli attacchi che vediamo in produzione. Avevamo bisogno di qualcosa che potessimo distribuire nei nostri prodotti AI e nelle app dei nostri clienti senza tutto questo.
Confronto benchmark con baseline OSS → docs/BENCHMARKS.md.
# SDK (zero-dep, ~50 KB) — structural firewall + browser bundle
npm i promptpurify
# Add the model (~14 MB ONNX) for the chat-injection guard
npm i onnxruntime-node
curl -L -o promptpurify-model.tar.gz \
https://github.com/securelayer7/PROMPTPurify/releases/download/v0.0.1/promptpurify-model.tar.gz
curl -L -o promptpurify-model.tar.gz.sha256 \
https://github.com/securelayer7/PROMPTPurify/releases/download/v0.0.1/promptpurify-model.tar.gz.sha256
sha256sum -c promptpurify-model.tar.gz.sha256 # MUST print "OK"
tar xzf promptpurify-model.tar.gz # creates models/l5e/
Il modello non è nel tarball npm — l'SDK rimane piccolo per chi vuole solo il firewall strutturale (browser, edge, RAG). Opzioni di distribuzione complete: docs/SAMPLE-DATA.md.
import { createL5eRunner } from "promptpurify/l5";
const guard = await createL5eRunner();
// In your /chat handler:
const score = await guard.score(userMessage);
if (score >= 0.95) return refusal(); // hard block
if (score >= 0.85) flagForReview(userMessage); // advisory
const reply = await yourLLM.complete(userMessage); // pass through
Funziona con Groq, OpenAI, Anthropic, vLLM, LLM locali — promptpurify non parla mai con il tuo LLM, solo con il tuo input.
Per il firewall strutturale deterministico (neutralizzazione Unicode, messaggi con ruoli delimitati, guardia contro l'exfiltrazione dell'output) vedi docs/QUICKSTART.md.
Abbiamo costruito il nostro modello da inizializzazione casuale perché nessun guardrail OSS esistente ci dava il compromesso dimensione/latenza che volevamo per distribuire nei nostri prodotti.
Panoramica completa dell'architettura → docs/HOW-IT-WORKS.md.
Gestiamo una sfida avversaria live su anton.securelayer7.net. Chiedi la password a Son of Anton. Se riesci a superare la guardia, dicci come — SECURITY.md.
Un chatbot di assistenza clienti fintech cablato con promptpurify, pronto per essere eseguito localmente:
cd examples/customer-support && npm install
GROQ_API_KEY=gsk_... node server.mjs
# http://localhost:8787
Vedi examples/customer-support/README.md.
.safe.Tutto ciò che rilasciamo è firmato e verificabile end-to-end:
npm audit signatures # ✓ verified registry signature + provenance attestation
*.cosign.bundle), un'attestazione di provenienza della build SLSA, un manifest SHA256 e un SBOM CycloneDX (SBOM.cdx.json).models/l5e/SHA256SUMS — ogni artefatto con checksum; verificato in CI su ogni PR.Se uno di questi controlli fallisce dalla tua parte, il pacchetto non è promptpurify — invia un report di sicurezza sotto SECURITY.md.
Il nome e la filosofia di design sono ispirati a DOMPurify di Cure53 — la stessa idea, applicata ai prompt dei LLM invece che all'HTML. Grazie a Mario Heiderich per aver suggerito il nome.
MIT per l'SDK e i pesi del modello. Le fonti dei benchmark che valutiamo sono elencate in training/CORPUS_LICENSES.json.
Divulgazioni sulla sicurezza: SECURITY.md.
| promptpurify | guardrail OSS tipico |
|---|
| Dimensione installazione | ~14 MB ONNX | 180 MB – 7 GB |
| Inferenza | CPU, singola cifra ms | GPU consigliata |
| Dove gira | Nel tuo processo Node | Sidecar o API ospitata |
| Costo per chiamata | $0 | $ o computazione GPU |