Qt WebEngine セキュリティに関する考察

このページでは、QtWebEngine ユーザのセキュリティ問題について説明します。Qt の一部として、QtWebEngine は Qt のセキュリティポリシーに従っています。Qtセキュリティポリシーを参照してください。

Chromium のリリースとセキュリティ修正

QtWebEngine は Chromium のリリーススケジュールを追跡します。QtWebEngine の最新バージョンには、Chromium でリリースされたセキュリティ修正が含まれています。正確なバージョン番号とリリースされた修正プログラムについては、QtWebEngine/ChromiumVersions の wiki ページを参照してください。

QtWebEngine Core がどのように Chromium の機能や特定のバージョンを実装しているかについては、Qt WebEngine Core Moduleのセクションを参照してください。また、Chromium のセキュリティポリシーについても知っておくと便利です。

Qt WebEngine アプリケーションのセキュリティトピック

アプリケーション内で信頼できないデータや機密データを扱うことに注意してください。画像、ユーザー情報、システム情報などのデータは、リモートリソース、アプリケーション内、またはシステム上のローカルから読み込まれる可能性があります。パフォーマンスを低下させたり、機密情報を公開したりすることなく、信頼できないデータを安全な方法で処理する方法に注意してください。ファイル名やディレクトリパスを明らかにするだけでも、システム情報やデータベース構造などの機密データを暴露する可能性があります。

QtWebEngine や Chromium には、同一生成元ポリシーなどのメカニズムがあり、未知のソースからの読み込みのリスクを最小限に抑えます。多くのウェブサイトは、ダイアログを表示したり、人気のあるウェブサイトを模倣したりして、ユーザーを騙しています。しかし Qt WebEngineを使えば、信頼できるデータをロードしてエンドユーザーに表示するだけで、インターフェイスをロックして不要な入力を防ぐことができます。ユーザー・インターフェースは、誤った入力や予期せぬ出来事に対処できるよう、堅牢であるべきです。

ウェブアプリケーションの深刻なセキュリティ問題は、クロスサイト・スクリプティング(XSS)です。この攻撃は、ウェブ・アプリケーションを騙して悪意ある HTML コンテンツを生成させ、ユーザの信頼を得ようとするコード の一部を実行することを含みます。例えば、ユーザ認証情報を要求するダイアログを生成する悪意あるコードを、無意識のうちにアプリケーションに取り込んでしま います。これらの認証情報はその後、外部サービスに送信され、アカウントの侵害につながる可能性があります。ダイアログを生成したのがあなたのアプリケーションであるため、ユーザは悪意のある行為を信頼します。URL の解析に注意し、誰もあなたのユーザインタフェースを悪用できないようにしてください。

リスクとその軽減に関する追加情報については「信頼できないデータの取り扱い」を参照してください。

Qt WebEngine 設定の構成

デフォルトでアクセスを制限するゼロトラストポリシーを実施することは良い習慣です。QtWebEngine のデプロイメントを設定することで、ユーザーやリモートの実行を制限することができます。QWebEngineSettings には、JavaScript の実行を無効にしたり、画像の自動ロードを無効にしたり、意図しない使用を防ぐためのその他のメカニズムを設定できる属性があります。例えば、QWebEngineSettings::LocalContentCanAccessFileUrls を無効にすると、Chrome や Firefox に似たサンドボックス環境を作成できます。

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