GraphQL Tools: 従来のGraphQL WebSocket ExecutorにおけるTLS証明書検証の無効化

## 影響

`@graphql-tools/executor-legacy-ws`の`buildWSLegacyExecutor()`関数は、以前、WSS経由のWebSocket接続を作成する際に、TLS証明書の検証を無効にする`rejectUnauthorized: false`をハードコードしていました。これにより、ネットワーク上の攻撃者が、このExecutorを`wss://`エンドポイントで使用しているアプリケーションに対して、中間者攻撃(MITM攻撃)を実行できるようになる可能性があります。`connectionParams`または`headers`を介して送信される認証情報は傍受される可能性があり、サブスクリプションデータが改ざんされる可能性もあります。

**影響を受ける対象:** Node.js環境で、`@graphql-tools/executor-legacy-ws`(または`@graphql-tools/url-loader`と`SubscriptionProtocol.LEGACY_WS`を組み合わせて使用)を使用して、`wss://`エンドポイントに接続し、接続を通じて認証情報を送信しているアプリケーション。

ブラウザのWebSocketクライアントは、この問題の影響を受けません(ブラウザは常に証明書を検証します)。

## 修正

`@graphql-tools/executor-legacy-ws`をバージョン1.1.35以降に、および(ローダーを使用している場合は)`@graphql-tools/url-loader`をバージョン9.1.9以降にアップグレードしてください。TLS証明書の検証は、デフォルトで有効になっています。信頼できる環境で意図的に自己署名証明書を使用する場合は、`rejectUnauthorized: false`を設定することで、この機能を無効にすることができます。

## 対策

- 可能であれば、最新の`graphql-ws` / `SubscriptionProtocol.WS`を使用してください。
- アップグレードするまでは、従来のWSS接続を介して機密情報を送信しないようにするか、TLSを信頼できるプロキシで終了し、信頼できるネットワークでのみ`ws://`を使用してください。
- 証明書の検証を強制するカスタムの`webSocketImpl`を提供してください。

影響を受けるパッケージ:
- npm (JavaScript) @graphql-tools/executor-legacy-ws: 影響を受けるバージョンは1.1.34以下、1.1.35で修正済み。