Auf dieser Seite

Umgang mit nicht vertrauenswürdigen Daten

Hinweise zum Umgang mit nicht vertrauenswürdigen Daten in Qt.

Nicht vertrauenswürdige Daten

Nicht vertrauenswürdige Daten sind Daten, die aus Quellen stammen, deren Integrität die Anwendung nicht garantieren kann. Beispiele für nicht vertrauenswürdige Daten sind vom Benutzer bereitgestellte Daten, Netzwerkdaten, generierte Daten oder Daten, die nicht direkt von der Anwendung erstellt werden. Der unsachgemäße Umgang mit nicht vertrauenswürdigen Daten kann zu Anwendungsabstürzen, der Offenlegung privater Daten sowie zu Schäden für Benutzer und Hardware führen. Daher müssen Entwickler besonders darauf achten, wie ihr Code nicht vertrauenswürdige Daten empfängt und verarbeitet.

Die Verantwortung für die Gewährleistung der Datensicherheit liegt letztendlich bei der Anwendung. Anwendungen können sich jedoch auf bestimmte Teile von Qt verlassen, die für die sichere Verarbeitung und Validierung von Daten entwickelt wurden. Beispielsweise können Qt-Module Bilder validieren, Zeichenketten sicher bearbeiten und eingehende Netzwerkpakete verarbeiten. Qt betrachtet diese Arten von Funktionen als sicherheitskritisch. Sicherheitskritische APIs werden während der Entwicklung einer besonders genauen Prüfung und Tests unterzogen.

Das Qt-Projekt verfügt über einen umfassenden Prozess zur Konzeption und zum Testen von Qt-Funktionalitäten. Weitere Informationen zur Sicherheitsrichtlinie von Qt finden Sie unter „Sicherheit in Qt“.

Risiken und Schwachstellen mit Qt mindern

Der Einsatz von Qt verringert viele der Risiken bei der Verarbeitung nicht vertrauenswürdiger Daten. Die folgenden Abschnitte behandeln Aspekte des Umgangs mit nicht vertrauenswürdigen Daten in Qt-Anwendungen.

Validierung von Benutzereingaben

Das Fehlen einer ordnungsgemäßen Eingabevalidierung kann zu fehlerhaften Daten und unerwartetem Verhalten führen. Strenge Validierungsregeln können jedoch auch die Eingabe von Daten durch Benutzer behindern. So kann beispielsweise das Verbieten bestimmter Zeichen dazu führen, dass Benutzer falsche Informationen oder schwache Passwörter eingeben.

Qt stellt mehrere Validatoren für Benutzereingaben bereit. Siehe:

Befehlsinjektion

Eine häufige Sicherheitslücke ist die böswillige Ausführung von Befehlen durch einen externen Prozess. Die Ausführung von Befehlen aus nicht vertrauenswürdigen Daten kann zur Offenlegung von Benutzerdaten, zum Zugriff auf private Ressourcen und zu anderen böswilligen Aktivitäten führen. Anwendungen können zudem nicht vertrauenswürdige Daten mit vertrauenswürdigen Daten kombinieren und diese dadurch verunreinigen.

Eine gängige Abhilfemaßnahme besteht darin, den Text zu validieren und von möglicherweise ausführbaren Befehlen zu trennen. Eine explizite Zulassungsliste für Befehle, die sowohl serverseitige als auch clientseitige Überprüfung nutzt, sowie eine sorgfältige Analyse der Daten können ebenfalls dazu beitragen, das Risiko zu mindern. Es wird außerdem empfohlen, vertrauenswürdige Plugins und Bibliotheken zu verwenden, die Systembefehle ausführen, anstatt Textskripte auszuführen.

Dekodierung von Bildern

Bilder aus nicht vertrauenswürdigen Quellen können Systemabstürze oder Leistungseinbußen verursachen. Stellen Sie sicher, dass die Anwendung Bildpfade, Bildtypen und Dateiendungen bereinigt, bevor Bilder geladen oder verarbeitet werden. Außerdem sollten Anwendungen große Bilder und unerwartete Formate verarbeiten, ohne dass es zu Leistungseinbußen oder Abstürzen kommt.

Deserialisierung von Daten

Behandeln Sie Daten, die deserialisiert werden sollen, als nicht vertrauenswürdige Daten, wenn sie von außerhalb der Vertrauensgrenze stammen, wo Daten einer zusätzlichen Überprüfung unterzogen werden müssen. Die serialisierten Daten können beschädigt sein oder bösartige Inhalte enthalten. Die Deserialisierung dieser Daten kann zu fehlerhaften Daten, Anwendungsabstürzen oder der Ausführung von bösartigem Code führen. Überprüfen Sie die Integrität der Inhalte, beispielsweise mithilfe von Verschlüsselungs- oder Hash-Verfahren. Behandeln Sie Fehler bei der Deserialisierung von Daten zudem elegant und verhindern Sie Systemabstürze.

Weitere Informationen finden Sie unter

Qt Qml und JavaScript-Quellen

Qt Qml geht davon aus, dass der Anwendungsentwickler den gesamten Code und alle Ressourcen bereitstellt. QML ist eine grundsätzlich speichersichere Sprache mit grundlegendem Schutz. QML kennt jedoch kein Konzept separater Datenschutzdomänen. Das bedeutet, dass jeder Code – unabhängig davon, ob er remote oder lokal geladen wird – auf alle Daten in seinem Geltungsbereich zugreifen kann.

Qt Qml-Anwendungen sollten Ressourcen aus dem lokalen Dateisystem oder über das Qt-Ressourcensystem laden. Falls eine Netzwerkverbindung erforderlich ist, sollten die Ressourcen über HTTPS oder innerhalb eines vertrauenswürdigen Netzwerks abgerufen werden.

© 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.