Au bon vieux temps, les entreprises pouvaient s’appuyer sur des proxys déployés de manière stratégique pour améliorer les performances des applications. En effet, les applications traditionnelles — monolithes et architectures à trois niveaux — utilisaient généralement un chemin de données unique entre le client et le serveur.
En termes simples, tous les contenus empruntaient un seul et même itinéraire, qu’ils soient statiques ou dynamiques, textuels ou visuels. Un contrôleur de mise à disposition d’applications (proxy) pouvait donc s’intercaler entre les deux et, à condition de choisir le bon, optimiser les performances. Cela se faisait — et se fait encore, d’ailleurs — souvent en ajustant divers paramètres IP, TCP et même HTTP. Ces techniques se retrouvent dans le déploiement de services applicatifs tels que la mise en cache, la compression et les techniques d’accélération propres à certains types de contenu.

Mais les applications modernes ne sont plus autonomes. Elles sont désormais, selon Sonatype, principalement constituées (à 80-90 %) de composants tiers, dont une part croissante est open source. Cela se reflète dans le nombre de scripts et autres codes injectables présents dans les applications web. Parfois, ces scripts s’exécutent à distance et renvoient une image, une publicité ou d’autres contenus tels que des polices web et des sprites. Dans d’autres cas, le script lui-même est chargé au moment de l’exécution et s’exécute dans l’environnement du navigateur, comme jQuery.
C’est ce que l’on appelle la composantisation — ou l’atomisation, si vous préférez. Elle consiste à décomposer les applications en de nombreux éléments plus petits. Côté client, nous les appelons des composants, car ils s’exécutent généralement dans le même espace. Côté serveur, nous les appelons de plus en plus souvent des microservices et les déployons dans des conteneurs. Dans les deux cas, l’impact est similaire : nous nous retrouvons avec un nombre imprévisible de chemins de données qui ont une incidence directe sur les performances.
En gros, vous ne contrôlez qu’un seul chemin de données, qui représente peut-être 20 % de votre application. Cela signifie que vous avez très peu de contrôle sur l’expérience utilisateur, car vous maîtrisez très peu les performances.
C’est également vrai pour la sécurité — merci de l’avoir remarqué. Le fait est que nous apprenons rapidement à tirer parti des techniques de programmation côté client pour améliorer la sécurité. En revanche, cela fonctionne moins bien pour les performances, car la plupart des applications sont soit mobiles, soit web, et ni les unes ni les autres n’offrent vraiment la possibilité ou les moyens de modifier la pile réseau.
L’un des moyens de lutter contre ce problème consiste à reprendre le contrôle. L’avantage, c’est que cela permet également de bénéficier d’effets secondaires positifs en matière de sécurité.
GAGNANT-GAGNANT : RÉDUISEZ LES RISQUES et AMÉLIOREZ LES PERFORMANCES
Si vos applications ont l’habitude de charger dynamiquement des composants depuis des sites externes, mettez fin à cette pratique. Immédiatement. C’est autant une question de sécurité que de performances. Vous donnez implicitement carte blanche à un script provenant d’une source externe pour s’exécuter dans le contexte de votre application. Croyez-moi, en cas de faille de sécurité, un utilisateur ne pourra pas faire la différence entre vos composants et ceux chargés depuis l’extérieur. Comme nous l’a appris la récente crise liée à la vulnérabilité du conteneur runc, l’injection de code malveillant dans des ressources chargées depuis des registres ou des sites tiers présente un risque pour la sécurité.
S’il s’agit d’un script, mieux vaut le copier et le diffuser depuis votre propre infrastructure. Vous réduirez ainsi les risques en gardant le contrôle, tout en pouvant ajuster les différents paramètres afin d’améliorer les performances pour vos utilisateurs. Cela inclut le DNS, dont il a été démontré à maintes reprises qu’il avait l’incidence la plus importante — et souvent négative — sur les performances des applications. Lorsque vous récupérez des composants depuis des sites externes, vous comptez sur leur infrastructure DNS pour offrir les performances attendues. Récupérer les composants depuis vos propres sites peut considérablement réduire cet impact, tout simplement parce que le cache DNS local de l’utilisateur joue alors en votre faveur.
L’hébergement des scripts sur votre propre site vous permet également de recourir à des optimisations TCP, au déchargement SSL/TLS ou à des techniques générales d’accélération des applications afin d’améliorer les performances globales. Vous pouvez aussi analyser la sécurité de ces scripts pour vous assurer qu’ils ne dissimulent aucune mauvaise surprise.
La modularisation en composants est très utile pour le développement et contribue assurément à accélérer la création de valeur. Mais elle peut avoir des répercussions négatives sur les performances et la sécurité. Soyez conscient des risques pour la sécurité et la satisfaction des utilisateurs, ainsi que des mesures que vous pouvez prendre pour les atténuer.
À propos de l’auteur

Lori MacVittie est ingénieure émérite et évangéliste en chef au sein du bureau du directeur technique de F5. Elle possède une expertise approfondie dans la fourniture d’applications, les stratégies d’automatisation et les infrastructures. Elle est réputée pour sa capacité à rendre la complexité intelligible, qu’elle définisse des garde-fous pour les agents d’IA, analyse des architectures multicloud fragiles ou explore les limites des systèmes évolutifs. Elle cumule plus de trente ans d’expérience dans le secteur, couvrant le développement d’applications, l’architecture informatique ainsi que l’exploitation des réseaux et des systèmes. Avant de rejoindre F5, elle a été rédactrice spécialisée dans les technologies et a reçu plusieurs distinctions. MacVittie est titulaire d’un master en informatique et est une autrice prolifique dont les publications couvrent la sécurité, le cloud et l’architecture d’entreprise. Elle est également une passionnée de jeux de société et de jeux vidéo, et assume pleinement ses avis bien tranchés sur le fromage.
Autres articles de Lori Mac VittieArticles de blog associés

F5 NGINXaaS pour Google Cloud : des applications résilientes et évolutives
Découvrez comment NGINXaaS s’intègre à Google Cloud pour renforcer les performances et la sécurité, et préparer vos applications critiques à un avenir propulsé par l’IA.
L’intégration de F5 Web Application Firewall (WAF) à AWS est disponible dès aujourd’hui
En faisant appel à un partenaire de déploiement AWS WAF tel que F5, vous pouvez renforcer la sécurité de vos applications web grâce à des règles personnalisées qui bloquent les schémas d’attaque courants, comme les injections SQL ou les attaques par scripts intersites (XSS).
Appliquer le principe de Peter Parker à l’inspection TLS
« Un grand pouvoir implique de grandes responsabilités. » Si l’on en trouve des échos chez Voltaire et Churchill, cette citation est surtout connue grâce aux bandes dessinées Spider-Man, où elle est attribuée à l’oncle Ben. Bien entendu, si cette phrase est si répandue dans la culture populaire, c’est notamment parce qu’elle peut s’appliquer à une multitude de situations et de sujets, y compris à l’inspection TLS.
Le NetOps a besoin de défenseurs, pas d’adversaires
Il est important de reconnaître que les équipes NetOps ne sont pas toujours celles qui font obstacle au déploiement de la dernière nouveauté, application ou service. Les freins à la rapidité sont souvent dus au fait que les organisations n’adoptent pas tous les principes du DevOps lorsqu’elles cherchent à transformer leurs opérations informatiques.
Mise à jour des services applicatifs : sécurité, rapidité et visiteurs suspects
Il est de nouveau temps de nous pencher sur les services applicatifs que les entreprises utilisent réellement pour rendre leurs applications plus rapides et plus sûres. On constate notamment une hausse du recours aux services de protection contre les bots, ainsi que la progression lente mais régulière de HTTP/2. Bien qu’il ne s’agisse pas d’une application…
Les templates prennent le contrôle du cloud
Les modèles s’imposent dans le cloud. Lisez le blog de F5 pour découvrir comment l’infrastructure en tant que code et les API déclaratives automatisent la mise à disposition des applications.