Protéger votre API - Guide de démarrage rapide
Pourquoi est-ce nécessaire ?
CrowdHandler fonctionne en redirigeant les utilisateurs finaux qui tentent d'accéder à une page Web ou à l'interface d'une application protégée vers une « salle d'attente ». Si les points de terminaison API qui pilotent l'expérience utilisateur sont identifiables, par exemple s'ils sont appelés côté client, les utilisateurs avertis, les revendeurs et/ou les robots pourraient tenter de contourner complètement l'interface utilisateur afin d'obtenir directement ce qu'ils veulent via vos points de terminaison API.
Dois-je m'inquiéter ?
Bien que cela ne soit pas déterminant, vous devriez envisager de protéger vos points de terminaison API si l'un ou plusieurs des critères suivants sont remplis :
- Les points de terminaison de votre API transactionnelle sont accessibles.
- Vous vendez des produits très prisés pour lesquels la demande risque de dépasser l'offre.
- Votre clientèle est très à l'aise avec les technologies.
- Vos produits sont connus pour être la cible de revendeurs.
Passer à l'action
Scenario 1 - API endpoint uses the same domain as the site you are protecting.
Exemple
Domaine protégé - https://tickets.example.com
Point de terminaison de l'API - https://tickets.example.com/v1/api
Prerequisite
Vous devriez déjà avoir intégré votre site à CrowdHandler à l'aide de l'une de nos options d'intégration via CDN ou côté serveur.
CrowdHandler Room Protection Options
All URLs
Aucune autre action n'est requise
URL correspondant à des expressions régulières
- La ou les pages sur lesquelles les utilisateurs finaux ajoutent le produit très demandé à leur panier doivent être protégées.
- L'API permettant d'ajouter le produit recherché au panier doit être protégée.

Considerations
My API URL routes are generic
Modifiez les routes URL de votre API afin qu'elles contiennent l'ID du produit ou le slug en tant que paramètres de chaîne de requête.
https://tickets.example.com/v1/api/basket → https://tickets.example.com/v1/api/basket?id=64398
Cela donnera lieu à des matchs de salles CrowdHandler.
Prevent Spoofing
Dans votre API, assurez-vous que l'ID du produit ou le slug figurant dans l'URL de l'API correspond à l'ID du produit ou au slug présent dans la charge utile. Sans cette couche de protection supplémentaire, l'ID du produit ou le slug figurant dans la chaîne de requête pourrait être modifié afin de contourner la configuration de votre salle CrowdHandler.
Scenario 2 - API endpoint uses a different domain from the site you are protecting.
Exemple
Domaine protégé - https://tickets.example.com
Point de terminaison de l'API - https://datasource.com/v1/api
CrowdHandler Room Configuration
- Configurez vos salles CrowdHandler de manière à protéger le domaine du site (https://tickets.example.com), et NON le domaine de l'API.
- La ou les pages sur lesquelles les utilisateurs finaux ajoutent le produit très demandé à leur panier doivent être protégées.
- La configuration des salles doit correspondre uniquement aux URL de votre domaine protégé.
Implementation Steps
Modify API requests Payload
Ajoutez deux champs supplémentaires à la charge utile de votre route API « Ajouter au panier ». Clé : sourceURL Valeur : location.href (l'URL de la page protégée effectuant l'appel API) Clé : chToken Valeur : jeton CrowdHandler (récupéré à partir d'un cookie ou du stockage local, selon le type d'intégration).
Validate the request server-side.
const urlParts = new URL(params.sourceURL);
const token = params.chToken;
const crowdhandler = require('crowdhandler-sdk');
const mockRequest = {
getHost: () => urlParts.host,
getPath: () => urlParts.pathname,
getCookies: () => `crowdhandler=${token}`
};
const { gatekeeper } = crowdhandler.init({
publicKey: 'your-public-key',
request: mockRequest,
response: {}, // Empty object is fine for validation only
});
const result = await gatekeeper.validateRequest();
// ✅ This works!
// result.promoted = true/false
// Reject if false ❌
// result.error = { message, statusCode, code } (if error occurred)