REST API design - 23 - Sécurité : les attaques que tu vas subir (et comment t'en protéger)
Input sanitization, SQL injection, mass assignment, limites de taille, HTTPS, security headers et OWASP API Top 10.
59 articles sur le thème "backend".
Input sanitization, SQL injection, mass assignment, limites de taille, HTTPS, security headers et OWASP API Top 10.
N+1, batch endpoints, compression, streaming, connection pooling et 202 Accepted avec polling pour des APIs rapides.
Comment structurer tes réponses d'erreur avec RFC 7807 Problem Détails, des codes métier et une vraie stratégie d'internationalisation.
URL path, header custom, content negotiation : les stratégies de versioning et comment gerer la deprecation proprement.
Déployer gRPC en production : TLS, load balancing L7, health checks, interceptors et observabilité avec OpenTelemetry.
Le fonctionnement de TLS et HTTPS demystifie. Certificate authorities, Let's Encrypt, et ce qui se passe quand tu tapes https://.
Introduction aux tests de performance : benchmark, charge, stress et endurance. Pourquoi les tests fonctionnels ne suffisent pas.
Les transactions SQL et les propriétés ACID. BEGIN, COMMIT, ROLLBACK, isolation levels et les pièges de la concurrence.
La différence entre authentification et autorisation. Deux concepts que les juniors confondent tout le temps.
Gerer les migrations de schema PostgreSQL. Versionning, rollback, zero-downtime migrations et les outils disponibles.
Projet complet en architecture hexagonale avec TypeScript. API de commandes avec domaine, ports, adaptateurs et tests.
La stratégie de test depend du projet. CRUD simple, API complexe, frontend, microservices : pas les memes tests.
Pourquoi l'état d'une entité doit vivre a un seul endroit. SSOT, état persiste vs derive, et bonnes pratiques backend pour le cycle de vie.
Écrire des fichiers .proto pour définir tes services gRPC. Messages, types, enums et bonnes pratiques de schema.
Tous les termes gRPC expliques : Protobuf, streaming, interceptor, channel, deadline, mTLS et plus. Avec exemples de code.
Le pattern Repository en TypeScript. Abstraire la base de donnees derrière une interface pour des tests faciles et un domaine propre.
Les triggers PostgreSQL : exécuter du code automatiquement sur INSERT, UPDATE ou DELETE. Audit, validation et effets de bord.
Le pattern Strategy en TypeScript. Encapsuler des algorithmes interchangeables derrière une interface commune.
Creer un client gRPC en TypeScript. Connexion, appels unaires, gestion d'erreurs et timeouts.
Les refresh tokens pour renouveler les access tokens sans redemander le mot de passe. Rotation, stockage et sécurité.
Optimiser PostgreSQL : lire EXPLAIN ANALYZE, connection pooling avec PgBouncer, et les paramètres de configuration.
Les adaptateurs en architecture hexagonale : implementer les ports avec PostgreSQL, Express, Stripe et le reste du monde réel.
Comment trouver les limites de ton serveur avec un stress test. Le point de rupture, les cascades et ce qui casse en premier.
Les trois facons de faire communiquer des microservices : REST, gRPC et messaging asynchrone. Quand utiliser chaque approche.
Pourquoi chaque dev backend doit comprendre SQL. Les ORM cachent la complexité mais pas les problèmes de performance.
Comment implementer une machine a états finis en TypeScript. Transition map declarative vs if/else, avec exemples concrets pour le backend.
Comprendre les JOINs SQL une bonne fois pour toutes. INNER, LEFT, RIGHT, FULL et CROSS avec des schemas visuels.
L'authentification par session et cookie. HttpOnly, Secure, SameSite et pourquoi c'est toujours le meilleur choix pour la plupart des apps.
Comment découper un monolithe en microservices. Identifier les bounded contexts, extraire le premier service, éviter le distributed monolith.
Pourquoi on hash les mots de passe et pourquoi SHA-256 n'est pas la bonne réponse. bcrypt, argon2 et le facteur de coût.
Pourquoi l'architecture hexagonale change la facon de structurer ton code. Introduction aux ports et adaptateurs pour les devs pragmatiques.
Implementer un serveur gRPC en TypeScript avec @grpc/grpc-js. Du fichier .proto au serveur fonctionnel, étape par étape.
OAuth2 demystifie : Authorization Code, PKCE, Client Credentials. Les flows expliques avec des schemas concrets.
Les microservices expliques sans bullshit. Ce que c'est, ce que ca n'est pas, et pourquoi un monolithe bien fait suffit souvent.
Le pattern Decorator en TypeScript. Wrapper des fonctions pour ajouter logging, cache, retry, auth sans toucher au code original.
Les 4 types de streaming gRPC : unary, server, client et bidirectionnel. Exemples concrets en TypeScript.
Le concept de l'architecture hexagonale explique simplement. Domaine, ports et adaptateurs avec un schema clair.
Le pattern Observer en TypeScript. EventEmitter natif de Node, events custom et le découplage par les événements.
Les erreurs les plus courantes en microservices : nano-services, couplage distribue, pas de monitoring, et comment les éviter.
Tester les timeouts, les retries et le comportement en mode degrade. AbortController, circuit breaker et chaos testing.
gRPC explique simplement : pourquoi Google l'a créé, comment ca marche, et quand préférer gRPC a REST.
Les JSON Web Tokens expliques : structure, signature, quand les utiliser et surtout quand NE PAS les utiliser.
Connecter ton application a ton serveur mail. Envoi avec nodemailer, lecture IMAP avec imapflow, et templates HTML.
Implementer un système de rôles et permissions en TypeScript. RBAC, middleware et les erreurs classiques.
Stocker et requeter du JSON dans PostgreSQL. JSONB, opérateurs, index GIN et quand utiliser JSON vs colonnes relationnelles.
gRPC vs REST compare point par point : performance, typing, streaming, tooling, debugging. Avec benchmarks et recommandations.
Le pattern Factory en TypeScript : créer des objets complexes avec une fonction ou une classe. Exemples concrets et cas d'usage.
Monolithe vs microservices : comparaison honnete avec avantages, inconvenients et cas d'usage concrets.
Securiser PostgreSQL : rôles, GRANT/REVOKE, schemas, Row Level Security et les bonnes pratiques d'acces.
Les transitions, guards et side effects dans une state machine. Comment protéger ton cycle de vie avec des preconditions testables en TypeScript.
Le pattern Builder en TypeScript. Construire des objets avec beaucoup de paramètres optionnels de facon lisible.
Les bases du SELECT en SQL qui font la différence : WHERE, ORDER BY, LIMIT, OFFSET, DISTINCT, aliases et les pièges courants.
Tous les termes de l'architecture microservices expliques : saga, circuit breaker, event sourcing, service mesh, CQRS et plus.
L'idempotence expliquee simplement : pourquoi c'est indispensable pour les API, les transitions d'état et les systèmes distribues.
Le problème N+1 en SQL : comment il apparaît avec les ORM, comment le détecter et 3 stratégies pour le corriger.
Écrire des fonctions et stored procedures en PostgreSQL. PL/pgSQL, paramètres, retours, exceptions et cas d'usage.
Le pattern Adapter en TypeScript. Convertir l'interface d'une lib externe en celle que ton code attend.
Les vues SQL, les vues materialisees pour le cache de requêtes complexes, et les colonnes générées en PostgreSQL.
Verifier que ton API respecte son contrat : status codes, shape des réponses, headers. Avec des exemples Elysia.