Sur cette page

Gestion des données non fiables

Conseils sur la gestion des données non fiables avec Qt.

Données non fiables

Les données non fiables sont des données provenant de sources dont l'application ne peut garantir l'intégrité. Il s'agit par exemple des données fournies par l'utilisateur, des données réseau, des données générées ou des données que l'application ne crée pas directement. Une mauvaise gestion des données non fiables peut entraîner des plantages de l'application, l'exposition de données privées et des dommages pour les utilisateurs et le matériel. Les développeurs doivent donc faire preuve de vigilance quant à la manière dont leur code reçoit et traite les données non fiables.

La responsabilité de garantir la sécurité des données incombe en dernier ressort à l’application. Cependant, les applications peuvent s’appuyer sur certaines parties de Qt en cours de développement pour traiter et valider les données en toute sécurité. Par exemple, les modules Qt peuvent valider des images, manipuler des chaînes de caractères en toute sécurité et traiter les paquets réseau entrants. Qt considère ces types de fonctionnalités comme critiques pour la sécurité. Les API critiques pour la sécurité font l’objet d’un examen et de tests supplémentaires au cours du développement.

Le projet Qt dispose d’un processus complet pour la conception et les tests des fonctionnalités de Qt. Pour plus d’informations sur la politique de sécurité de Qt, consultez la section Sécurité dans Qt.

Atténuer les risques et les vulnérabilités avec Qt

L'utilisation de Qt réduit considérablement les risques liés au traitement de données non fiables. Les sections suivantes abordent les différents aspects de la gestion des données non fiables dans les applications Qt.

Validation des entrées utilisateur

L'absence de validation adéquate des entrées peut entraîner des données erronées et des comportements inattendus. Cependant, des règles de validation trop strictes peuvent également empêcher les utilisateurs de saisir des données. Par exemple, le fait d'interdire certains caractères peut conduire les utilisateurs à saisir des informations incorrectes ou des mots de passe peu sûrs.

Qt fournit plusieurs validateurs pour les saisies utilisateur. Voir :

Injection de commandes

Une vulnérabilité de sécurité courante consiste en l'exécution de commandes malveillantes par un processus externe. L'exécution de commandes à partir de données non fiables peut entraîner la divulgation de données utilisateur, l'accès à des ressources privées et d'autres activités malveillantes. Les applications peuvent également combiner des données non fiables avec des données fiables, ce qui corrompt les données.

Une mesure d'atténuation courante consiste à valider et à séparer le texte des commandes exécutables potentielles. Une liste blanche explicite de commandes, associée à une vérification à la fois côté serveur et côté client, ainsi qu'un analyse syntaxique minutieuse des données peuvent également contribuer à atténuer le risque. Il est également recommandé d'utiliser des plugins et des bibliothèques fiables qui exécutent des commandes système plutôt que d'exécuter des scripts textuels.

Décodage des images

Les images provenant de sources non fiables peuvent provoquer des plantages du système ou une baisse des performances. Assurez-vous que l’application nettoie les chemins d’accès aux images, les types d’images et les extensions de fichiers avant de charger ou de traiter les images. De plus, les applications doivent être capables de traiter des images volumineuses et des formats inattendus sans dégrader les performances ni provoquer de plantage.

Désérialisation des données

Considérez les données destinées à la désérialisation comme des données non fiables si elles proviennent de l’extérieur de la zone de confiance, où elles doivent faire l’objet d’un examen minutieux. Les données sérialisées peuvent être corrompues ou contenir du contenu malveillant. La désérialisation de ces données peut entraîner des données erronées, des plantages d’application ou l’exécution de code malveillant. Vérifiez l’intégrité du contenu, par exemple à l’aide de techniques de chiffrement ou de hachage. De plus, lors de la désérialisation des données, gérez les erreurs de manière appropriée et évitez les plantages du système.

Pour plus d’informations, consultez

Qt Qml et Sources JavaScript

Qt Qml part du principe que le développeur de l’application fournit l’ensemble du code et des ressources. QML est un langage généralement sûr en termes de mémoire et doté d’une protection de base. Cependant, QML ne dispose pas du concept de domaines de confidentialité distincts. Cela signifie que tout code, qu’il soit chargé à distance ou localement, peut accéder à toutes les données de son périmètre.

Les applications QML doivent charger les ressources à partir du système de fichiers local ou via le système de ressources de Qt. Si un accès au réseau est nécessaire, récupérez la ressource via HTTPS ou au sein d’un réseau de confiance.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.