Qt Positioning セキュリティ上の注意事項
このページでは、本モジュールを使用する際に発生しうる潜在的なセキュリティ上の問題を取り上げ、それらを回避する方法を提案します。
プラグイン
このモジュールは、実行時にバックエンドを選択するためにプラグインシステムを使用しています。この選択は、プラットフォームに基づいて行われるか、アプリケーションからの明示的な要求に基づいて行われます。
悪意のあるプラグインの読み込みを防ぐ
プラグインシステムは、攻撃者が悪意のあるプラグインをアプリケーションに読み込ませる機会を与えてしまいます。プラグインはアプリケーションのプロセス内で実行される共有ライブラリであるため、アプリケーションの権限で任意のコードを実行することが可能です。
Qt プラグインのドキュメントには、プラグインの検索および読み込み方法、ならびに検索パスに影響を与える要因の概要が記載されています。これらのパスを通じて信頼できないプラグインにアクセスできないようにすることは、アプリケーション開発者の責任です。アプリケーションをデプロイする際は、以下の点を確認してください。
- Qtのインストールディレクトリおよびアプリケーションディレクトリが、信頼できないユーザーによって変更されないこと。
- アプリケーションが
qt.confファイルを使用している場合、その内容が正しく、信頼できないユーザーがファイルを改変できないこと。 QT_PLUGIN_PATHなどの変数がプラグインの検索パスを拡張するため、信頼できない第三者がプロセス環境を制御できないこと。
また、アプリケーションは起動時にQCoreApplication::setLibraryPaths()を呼び出して、検索パスを明示的に設定することもできます。この方法で設定されたパスも、信頼できないユーザーによる変更から保護する必要があります。
本番環境でのテストモードの使用は避ける
自動テストの決定性を保つため、環境変数 `QT_QTESTLIB_RUNNING ` が設定されている場合、モジュールはすべての本番用プラグインを無視します。その結果、アプリケーションは位置情報や衛星ソースを利用できなくなります。本番環境では、この変数が設定されていないことを確認してください。
© 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.