des informaticiens de l'Université Carnegie Mellon ont conçu un moyen d'utiliser en toute sécurité plusieurs langages de programmation dans le même programme, ce qui permet aux programmeurs d'utiliser la langue la plus appropriée pour chaque fonction tout en prévenant le code attaques par injection, l'une des menaces de sécurité les plus sévères dans les applications Web aujourd'hui .
Un groupe de recherche dirigé par Jonathan Aldrich, professeur associé à l'Institut pour le logiciel de recherche (ISR), développe un langage de programmation appelé Wyvern qui permet de construire des programmes en utilisant une variété de cibles, de langages dédiés, tels que SQL pour interroger bases de données ou HTML pour construire des pages Web, comme les sous-langues, plutôt que d'écrire le programme entier en utilisant une langue d'usage général.
Wyvern détermine qui sous-langage est utilisé dans le programme en fonction du type de données que le développeur manipule. Types spécifient le format des données, telles que des caractères alphanumériques, nombres à virgule flottante ou plusieurs structures de données complexes, telles que les pages Web et les requêtes de base de données.
Le type fournit un contexte permettant Wyvern pour identifier un sous-langage associé à ce type de la même manière qu'une personne se rendrait compte que d'une conversation sur un repas gastronomique peut comprendre quelques mots et phrases en français, a expliqué Joshua Soleil systèmes ISR scientifique.
"Wyvern est comme un négociateur international qualifié qui peut facilement passer d'une langue à obtenir toute une équipe de gens à travailler ensemble», a déclaré 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."
De nombreuses tâches de programmation peuvent impliquer plusieurs langues; lors de la construction d'une page Web, par exemple, HTML peut être utilisé pour créer la plus grande partie de la page, mais le programmeur peut également inclure SQL pour accéder aux bases de données et JavaScript afin de permettre une interaction utilisateur. En utilisant les langages spécifiques de type, Wyvern peut simplifier cette tâche pour le programmeur, Aldrich dit, tout en évitant les solutions de contournement qui peuvent introduire des failles de sécurité.
Une pratique courante mais problématique est de coller ensemble des chaînes de caractères pour former une commande dans un langage spécialisé, tel que SQL, au sein d'un programme. Si ce n'est pas mis en œuvre avec soin, cependant, cette pratique peut laisser les ordinateurs vulnérables à deux des menaces les plus graves en matière de sécurité sur le Web aujourd'hui - attaques cross-site scripting et des attaques par injection SQL. Dans ce dernier cas, par exemple, une personne ayant connaissance des systèmes informatiques pourrait utiliser un formulaire de login / mot de passe ou un bon de commande sur un site Web de taper une commande DROP TABLE qui pourrait anéantir une base de données.
"Wyvern rendrait l'utilisation de chaînes à cet effet inutile et donc éliminer toutes sortes de vulnérabilités d'injection", a déclaré Aldrich.
Les tentatives précédentes pour développer les langages de programmation qui pourraient comprendre d'autres langues ont été confrontés à des compromis entre la composabilité et l'expressivité; ils ont été soit limités dans leur capacité de déterminer sans ambiguïté la langue embarqué a été utilisé ou limitées dans les langues embarqués pourraient être utilisés.
"Avec Wyvern, nous vous permettant d'utiliser ces langues, et de définir de nouvelles, sans se soucier de composition», a déclaré Cyrus Omar, un doctorat étudiant au Département d'informatique et le concepteur en chef de l'approche de la langue spécifique de type de Wyvern.
0 commentaires:
Enregistrer un commentaire
Click to see the code!
To insert emoticon you must added at least one space before the code.