Le web serait un endroit beaucoup plus sûr si pas pour la vulnérabilité intégré directement dans une pratique de codage commun: cordes collé-ensemble de commandes de base de données (généralement soit pour des requêtes SQL ou javascript activé interactions de l'utilisateur), ce qui pourrait être exploité à des fins malveillantes . Mais les informaticiens de Carnegie Mellon développent un langage de programmation spécifiquement destinée à protéger les ordinateurs et les sites Web de ces menaces.

Wyvern, comme ils l'appellent, est quelque chose d'un méta-langage. Il permet aux codeurs de développer des pages Web et des applications utilisant une variété de programmation et de script langues spécifiques - tels que SQL pour interroger les bases de données ou HTML, CSS et javascript pour la construction de pages Web - avec l'astuce étant que chaque langue fonctionne comme il le ferait normalement, il n'y a donc pas besoin d'utiliser des solutions de contournement difficiles et potentiellement en situation d'insécurité dans les cas où plusieurs langues sont nécessaires.

Plusieurs langues sont souvent nécessaires dans la présentation de contenu sur les sites Web. La majeure partie des mots que vous lisez et les images que vous voyez sont codés en HTML et CSS, soit à la volée en fonction de requêtes PHP ou fichiers chargés directement à partir du serveur. Mais les suggestions de nombreux bars de recherche affichage lorsque vous tapez et la page se charge instantanée que vous voyez parfois quand naviguant sur plusieurs pages des articles ne sont possibles que grâce à javascript (généralement en combinaison avec Lua, PHP, et / ou Python). Et les chances sont que si vous avez besoin d'aller à une page de compte ou peut-être acheter quelque chose via une boutique en ligne, vous serez indirectement envoyant des requêtes de base de données SQL.

Eviter les problèmes de sécurité avec le code d'intégration et de traduire que ces requêtes souvent complexes entraînent prend beaucoup de soins, de l'expertise, et l'essai, mais une langue spéciale comme Wyvern pourrait prendre la douleur. Il comprend et identifie ces sous-langages de données de contexte et traite et des objets en conséquence comme des littéraux (valeurs fixes) d'un type donné dans une langue appropriée à ce type (afin de favoriser l'exemple ci-dessus, un type littérale SQLQuery sera traitée dans le code SQL plutôt que comme une chaîne de texte qui doit être analysé par une fonction spéciale).

"Wyvern est comme un négociateur international qualifié qui peut facilement basculer entre les langues pour obtenir toute une équipe de gens à travailler ensemble», explique professeur agrégé Jonathan Aldrich. "Une telle personne peut être extrêmement efficace et, de même, je pense que notre nouvelle approche peut avoir un grand impact sur la construction de systèmes de logiciels."

Wyvern est pas le seul projet pour aborder la question de la méta-programmation et le code d'analyse à travers les langues - autres comprennent ProteaJ, Scheme, JO, et Spoofax, qui aborder le problème sous des angles différents - mais ses créateurs croient Wyvern offre le meilleur équilibre entre la composabilité et l'expressivité telle qu'elle permet un large éventail de langues intégrés pour être utilisé plus ou moins librement.

Il est pas encore prêt pour le prime time, cependant. Wyvern est à ce stade seulement mis en œuvre à un niveau de base, avec de nombreuses fonctionnalités pas pleinement développés ou appliqués. Contributeurs ou expérimentateurs en herbe peuvent plonger dans le projet de La page GitHub, toutefois.