Je conçois une API RESTful destinée à être consommée par une application d'une seule page et une application mobile native. Certains appels de cette API retournent des résultats publics qui peuvent être mis en cache pendant un certain temps. De plus, il existe un besoin de protection de taux pour protéger l'API contre les utilisateurs non autorisés (araignées)
Caching: Cloudflare prend en charge les en-têtes de contrôle de cache HTTP pour que l'API puisse décider pour chaque entité demandée via GET si elle est publique et combien de temps elle peut être mise en cache.
Protection DDOS: Le support Cloudflare a un article recommandant que la protection DDOS soit désactivée pour les API backend , mais cela ne s'applique pas à mon cas d'utilisation où chaque client est censé faire quelques demandes à l'API. La protection DDOS native correspond en fait à mes exigences de protection de l'API contre les bots.
J'ai besoin de savoir comment je peux détecter par programmation quand Cloudflare sert une Captcha/ Je suis attaqué etc. page Cela permettrait alors à l'application SPA/mobile de réagir intelligemment et de rediriger l'utilisateur vers une vue Web où elle pourrait démontrer son "humanité".
De la documentation Cloudflare, il n'est pas évident quel code d'état HTTP est envoyé lorsqu'un défi DDOS est présenté. Un open-source cloudscraper pour contourner la protection Cloudflare DDOS semble indiquer que Captcha et les pages de défi sont livrées avec un état HTTP 200. Existe-t-il un meilleur moyen que d'analyser la demande pour savoir si la protection DDOS est activée?
Cloudflare tilise apparemment des cookies pour enregistrer qui a résolu le Captcha avec succès. Cela crée évidemment une complexité supplémentaire avec les applications natives. Existe-t-il un bon moyen de transférer les cookies de session Cloudflare vers une application native une fois le défi résolu?
Il s'agit probablement d'un cas d'utilisation avancé de Cloudflare - mais je pense que c'est prometteur et je serais heureux d'entendre si quelqu'un a de l'expérience avec quelque chose comme ça (sur Cloudflare ou un autre CDN).
Cloudflare a publié ne liste des meilleures pratiques pour l'utiliser avec des API.
TL; DR, ils recommandent de définir une règle de page qui corrige toutes les demandes d'API et d'y mettre les paramètres suivants:
Oui, CloudFlare peut vous aider avec les protections DDOS et Non, il n'implémente pas la mise en cache et la limitation de débit pour votre API. Vous devez les implémenter vous-même ou vous utilisez un cadre qui le fait.
Vous pouvez utiliser CloudFlare pour protéger votre point de terminaison API en l'utilisant comme proxy. CloudFlare protège l'intégralité du bit URL que vous pouvez utiliser les règles de page pour modifier les paramètres de votre point de terminaison api.
Example: https://api.example.com/*
Pour les API de cache
Create a page rule like https://api.example.com/*.json
Il existe de nombreuses autres façons de protéger les API. Espère que cette réponse vous a été utile?