Qt GRPC セキュリティに関する注意事項
もし Qt GRPC、ユーザー、ネットワークトラフィック、およびハードウェアを脅威から保護するために、セキュリティ面を考慮してください。
以下に、検討すべきいくつかの対策を示します。
- データの送受信時には暗号化を使用してください。データを暗号化することで、盗聴や類似の攻撃に対する保護が強化されます。 Qt Network は、さまざまな TLS バックエンドや暗号スイートを使用できる TLS 暗号化をサポートしています。詳細については、「Secure Sockets Layer (SSL) クラス」を参照してください。
- 強力な認証および認可メカニズムを使用してください。異なるプラットフォーム上のさまざまなユーザーに対応するため、複数の OAuth2 および OpenID ベースのサービスを利用することもできます。Qt は、 Qt Network Authorization モジュールを通じてこれらのAPIをサポートしています。
- 信頼できないデータを安全に検証・処理してください。入力フィールドやその他の受信データは、インジェクション攻撃に対して脆弱です。詳細については、「信頼できないデータの処理」を参照してください。
- 受信メッセージの最大サイズを制限してください。デフォルトでは、QtGrpc は4 MiBを超える受信メッセージを拒否します( gRPC™ 仕様に準拠)。この制限は、トランスポートレベルの復号およびメッセージごとの解凍処理を経た、デコード済みのgRPCフレームペイロードに適用されます。QGrpcChannelOptions::setMaximumReceiveMessageSize() またはQGrpcCallOptions::setMaximumReceiveMessageSize() を使用することで、チャネルごと、あるいは個々のRPCごとにこの制限値を調整できます。 値はそのまま使用されます。
0という値を設定すると、空のメッセージ(google.protobuf.Emptyなど)のみを受け付けます。より大きなメッセージを許可するには、トランスポート固有の最大値の範囲内で、制限値を適宜設定してください。QGrpcHttp2Channel は、このオプションが明示的に設定されていない場合、フォールバックとしてQT_GRPC_MAXIMUM_RECEIVE_MESSAGE_SIZE環境変数を使用します。環境変数が設定されていない場合は、デフォルト値が使用されます。Environment variable fallbacks を参照してください。 - 再接続の試行回数を制限するには、指数関数的バックオフを使用します。サーバーが接続を切断した場合、遅延なく再接続を試みるクライアントは、ローカルのファイルディスクリプタ、CPU、およびネットワーク帯域幅を枯渇させる可能性があります。 デフォルトでは、QtGrpc は再接続試行間にジッターを伴う指数関数的バックオフを適用します。初期間隔は1秒、乗数は1.6、最大値は120秒です(gRPC 仕様に準拠)。 バックオフは、サーバーが接続を承認すると自動的にリセットされます。QGrpcHttp2Channel は、初期間隔、最大間隔、および接続試行ごとのタイムアウトを、それぞれ
QT_GRPC_INITIAL_RECONNECT_BACKOFF_MS、QT_GRPC_MAXIMUM_RECONNECT_BACKOFF_MS、QT_GRPC_CONNECT_TIMEOUT_MSという環境変数から読み取ります。これらが設定されていない場合は、デフォルト値が使用されます。詳細はEnvironment variable fallbacks を参照してください。 - 受信メタデータの最大サイズを制限します。デフォルトでは、QtGrpc は16 KiBの制限を適用します(gRPC 仕様に準拠)。 この制限は、プロトコルで必須とされるメタデータを含め、RPC に対して受信されるすべてのメタデータに適用されます。QGrpcHttp2Channel は、
QT_GRPC_MAXIMUM_METADATA_SIZE環境変数からこの値を読み取ります。4 KiB 未満の値は(警告を表示して)その最小値まで引き上げられ、トランスポートがサポートする最大値を超える値はクリップされます。環境変数が設定されていない場合は、デフォルト値が使用されます。Environment variable fallbacks を参照してください。 - 不正利用を防ぐために、レート制限を設定し、トラフィックを監視してください。Qt GRPC はサービス拒否(DoS)攻撃に対して脆弱である可能性があり、制限の設定と徹底したテストを行うことで、トラフィックの過負荷によるリスクを軽減できます。
- セキュリティの脆弱性を修正するために環境を更新してください。システムのハードウェアは、最新のセキュリティ機能や修正プログラムを利用できるよう更新する必要があります。
Qt GPRC の使用に関する詳細については、『Qt GRPC クライアントガイド』を参照してください。
その他のセキュリティ関連トピックについては、「Qt のセキュリティ」ページをご覧ください。
© 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.