Documentation complète
Guides d'intégration, références API et tutoriels pour tous les produits ADLIBO.
Prompt Guard
Détection d'injections de prompts
DataShield
Tokenisation DLP pour LLMs
Hallucination Guard
Vérification des réponses IA
Endpoint Shield
Extension DLP navigateur
AI Red Team
Pentest LLM/chatbot
Cloud Proxy
Proxy LLM avec DataShield
AI Threat Feed
Blocklist IP pour firewalls
Starter Kit
Chatbot IA sécurisé open-source
SDKs
JavaScript, Python, PHP
Sovereignty Audit
Audit souveraineté IT
On-Premise
Déploiement air-gapped
AI Detect
Détection contenu IA
Guide de démarrage rapide
Démarrez avec Adlibo en moins de 5 minutes. Protégez votre application IA contre les attaques par injection de prompt.
1Obtenez votre clé API
Créez un compte et générez votre clé API depuis le tableau de bord.
2Installez le SDK
npm install @adlibo/sdk3Analysez les entrées utilisateur
import { Adlibo } from '@adlibo/sdk';
// Initialize with your API key (string, not object!)
const adlibo = new Adlibo('YOUR_API_KEY');
// Or with optional config:
// const adlibo = new Adlibo('YOUR_API_KEY', { timeout: 5000 });
// Analyze user input before sending to LLM
const result = await adlibo.analyze(userInput);
if (result.safe) {
// Safe to process
const response = await openai.chat.completions.create({
messages: [{ role: 'user', content: userInput }],
model: 'gpt-4'
});
} else {
// Block malicious input
console.log(`Blocked: ${result.categories}`);
console.log(`Risk Score: ${result.riskScore}`);
}Note : ESM vs CommonJS
Le SDK est publié en format ESM. Si vous utilisez CommonJS ("type": "commonjs" dans package.json), utilisez l'import dynamique :
// CommonJS (.cjs ou sans "type": "module")
async function init() {
const { Adlibo } = await import('@adlibo/sdk');
const adlibo = new Adlibo('YOUR_API_KEY');
return adlibo;
}
// Usage
const adlibo = await init();
const result = await adlibo.analyze(userInput);Intégration en parallèle
Si vous avez déjà un système de protection existant, vous pouvez utiliser Adlibo en complément pour centraliser vos logs et bénéficier de notre tableau de bord.
Deux modes d'intégration
- Mode complet : Adlibo détecte et protège (Quickstart)
- Mode parallèle : Votre code détecte, Adlibo centralise les logs
Architecture parallèle
Utilisateur
│
▼
┌─────────────────┐
│ Votre systeme │ ◄── Detection locale (votre code)
│ de protection │
└────────┬────────┘
│
▼ (si detection)
┌─────────────────┐
│ Adlibo API │ ◄── POST /v1/report
│ (centralise) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Dashboard │
│ unifie │
└─────────────────┘Reporter une détection
// Votre systeme detecte localement
const myDetectionResult = myLocalDetector.analyze(userInput);
// Envoyer a Adlibo pour centraliser les logs
if (!myDetectionResult.safe) {
await fetch('https://www.adlibo.com/api/v1/report', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
detection: {
riskScore: myDetectionResult.score,
severity: myDetectionResult.level, // 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'
categories: myDetectionResult.types,
patterns: myDetectionResult.matches,
action: 'BLOCKED',
blocked: true,
inputLength: userInput.length,
inputPreview: userInput.slice(0, 200),
userId: currentUser?.id,
endpoint: '/api/chat',
clientEngine: 'my-detector-v1.0'
}
})
});
}Mode batch (jusqu'à 100 détections)
// Envoyer plusieurs detections d'un coup
await fetch('https://www.adlibo.com/api/v1/report', {
method: 'POST',
headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
body: JSON.stringify({
batch: [
{ riskScore: 85, severity: 'HIGH', ... },
{ riskScore: 92, severity: 'CRITICAL', ... },
// jusqu'a 100 detections
]
})
});Authentification
Toutes les requêtes API nécessitent une authentification via un token Bearer dans l'en-tête Authorization.
Authorization: Bearer YOUR_API_KEYGardez votre clé API sécurisée
N'exposez jamais votre clé API dans le code côté client. Effectuez toujours les appels API depuis votre serveur backend.
/v1/analyzeAnalyse le texte pour détecter les patterns d'injection de prompt. Retourne des informations détaillées sur les menaces détectées, le score de risque et l'action recommandée.
Corps de la requête
| Paramètre | Type | Description |
|---|---|---|
| text | string | Requis. Le texte à analyser. |
| options.includeDetails | boolean | Inclure les détails des patterns correspondants. Par défaut : true |
| options.sanitize | boolean | Retourner le texte nettoyé dans la réponse. Par défaut : false |
| roleContext | object | Contexte d'accès basé sur les rôles pour un scoring amélioré. ENTERPRISE uniquement. |
| roleContext.userRole | string | Rôle utilisateur : EMPLOYEE, MANAGER, HR_MANAGER, EXECUTIVE, SUPER_ADMIN, etc. |
| roleContext.businessDomain | string | Domaine métier : HEALTHCARE, FINANCE, LEGAL, GOVERNMENT, etc. |
| roleContext.isOwnData | boolean | L'utilisateur accède à ses propres données (réduit le score de sensibilité). |
| roleContext.isTeamData | boolean | Le manager accède aux données de son équipe (réduit le score de sensibilité). |
Réponse
{
"safe": false,
"riskScore": 92,
"severity": "CRITICAL",
"category": "INSTRUCTION_OVERRIDE",
"action": "BLOCK",
"patterns": [
{
"type": "DIRECT_OVERRIDE",
"match": "ignore previous instructions",
"score": 80,
"position": { "start": 0, "end": 28 }
},
{
"type": "DAN_JAILBREAK",
"match": "you are now DAN",
"score": 90,
"position": { "start": 30, "end": 45 }
}
],
"sanitizedText": null,
"processingTimeMs": 3
}Exemple
import { Adlibo } from '@adlibo/sdk';
// Initialize with your API key (string, not object!)
const adlibo = new Adlibo('YOUR_API_KEY');
// Or with optional config:
// const adlibo = new Adlibo('YOUR_API_KEY', { timeout: 5000 });
// Analyze user input before sending to LLM
const result = await adlibo.analyze(userInput);
if (result.safe) {
// Safe to process
const response = await openai.chat.completions.create({
messages: [{ role: 'user', content: userInput }],
model: 'gpt-4'
});
} else {
// Block malicious input
console.log(`Blocked: ${result.categories}`);
console.log(`Risk Score: ${result.riskScore}`);
}/v1/sanitizeSupprime ou neutralise les patterns malveillants du texte. Retourne le texte nettoyé avec la liste de ce qui a été supprimé.
Réponse
{
"text": "User input without malicious content",
"removed": [
{
"type": "SCRIPT_INJECTION",
"original": "<script>alert('xss')</script>",
"position": { "start": 15, "end": 48 }
}
],
"wasModified": true,
"processingTimeMs": 2
}Exemple
// Sanitize input (remove malicious patterns)
const cleaned = await adlibo.sanitize(userInput);
console.log(cleaned.text); // Safe text
console.log(cleaned.removed); // Patterns removed/v1/detectVérification booléenne rapide pour l'injection de prompt. Utilisez cet endpoint lorsque vous avez juste besoin d'une réponse oui/non avec une latence minimale.
Réponse
{
"safe": true,
"processingTimeMs": 1
}Exemple
// Quick boolean check
const isSafe = await adlibo.detect(userInput);
if (!isSafe) {
throw new Error('Potentially malicious input detected');
}/v1/reportIntégration parallèleEnregistre une détection effectuée par votre propre système. Utilisez cet endpoint pour centraliser vos logs dans le dashboard Adlibo sans modifier votre logique de détection existante.
Corps de la requête
| Paramètre | Type | Description |
|---|---|---|
| detection.riskScore | number | Requis. Score de risque (0-100) |
| detection.severity | string | Requis. LOW | MEDIUM | HIGH | CRITICAL |
| detection.action | string | Requis. LOGGED | WARNED | BLOCKED | ALERTED |
| detection.blocked | boolean | Requis. Si la requête a été bloquée |
| detection.inputLength | number | Requis. Longueur du texte original |
| detection.categories | string[] | Catégories détectées |
| detection.patterns | object[] | Patterns correspondants (category, match, score) |
| detection.inputPreview | string | 200 premiers caractères (pour debug) |
| detection.clientEngine | string | Version de votre détecteur (ex: "my-guard-v1.2") |
| batch | object[] | Ou : tableau de détections (max 100) |
Réponse
{
"success": true,
"detectionId": "clxyz123...",
"processingTimeMs": 5
}
// Ou en mode batch:
{
"success": true,
"processed": 95,
"failed": 5,
"processingTimeMs": 120
}Patterns de détection
Adlibo détecte plus de {patternCount} patterns d'attaque dans {categoryCount} catégories avec 100% de détection et 23ms de latence P99. Voici les principales catégories de menaces :
Override Direct
Tentatives de contourner les instructions système
Manipulation de Rôle
Tentatives de changer la persona IA ou revendiquer des rôles métier
Jailbreak DAN
Attaques "Do Anything Now" et similaires
Extraction d'Instructions
Tentatives de révéler les prompts système
Manipulation de Tokens
Tokens de format spécifiques aux LLM
Encodage/Obfuscation
Leetspeak, homoglyphes, astuces d'espacement
Attaque Roleplay
Scénarios fictifs pour contourner la sécurité
Manipulation Émotionnelle
Ingénierie sociale via urgence, culpabilité, flatterie
Limite Graduelle
Attaques multi-tours qui construisent la confiance progressivement
Requête Sensible
Demandes de données sensibles par domaine
Agent d'Évaluation de Sécurité
Déployez notre agent CLI pour des audits de sécurité complets. Scans non destructifs couvrant OWASP Top 10, Sécurité API et vulnérabilités LLM.
Installation
# Download the agent
curl -sSL https://www.adlibo.com/api/agent/download -o adlibo-agent.sh
chmod +x adlibo-agent.sh
# Check system compatibility
./adlibo-agent.sh --system-info
# Install dependencies (auto-detects distro)
./adlibo-agent.sh --install-depsUtilisation
# Run all tests
./adlibo-agent.sh --token <YOUR_TOKEN> --all
# Interactive module selection
./adlibo-agent.sh --token <YOUR_TOKEN> --interactive
# Specific modules only
./adlibo-agent.sh --token <YOUR_TOKEN> -m owasp-a01,owasp-a03,llm-01
# List available modules
./adlibo-agent.sh --listModules Disponibles
| Module | Description | Framework |
|---|---|---|
| owasp-a01 | Broken Access Control | OWASP Top 10 |
| owasp-a03 | Injection (SQL, XSS, Command) | OWASP Top 10 |
| api-1 | Broken Object Level Auth | OWASP API |
| llm-01 | Direct Prompt Injection | OWASP LLM |
| llm-02 | Indirect Prompt Injection | OWASP LLM |
| infra-ssl | SSL/TLS Configuration | Infrastructure |
| data-secrets | Secrets Detection | Data Exposure |
Limites de Taux
| Plan | Requêtes/Mois | Limite de Taux |
|---|---|---|
| Trial (14 days) | 5,000 | 60 req/min |
| Pro | 50,000 | 600 req/min |
| Enterprise | Unlimited | 10,000 req/min |
Codes d'Erreur
| Code | Description |
|---|---|
| 400 | Bad Request - Paramètres invalides |
| 401 | Unauthorized - Clé API invalide ou manquante |
| 403 | Forbidden - IP non autorisée ou quota dépassé |
| 429 | Too Many Requests - Limite de taux dépassée |
| 500 | Internal Server Error |
Besoin d'aide ?
Notre équipe est là pour vous aider à intégrer Adlibo dans votre application.