14

SignalR Hub クラスContext.ConnectionIdでは、ユーザーを呼び出すことができます。Dictionary<string, string>ユーザーをつなぐために、これらをに保存しようとしています。他のユーザーのクライアント ID をユーザーのクライアントに返すことにリスクやセキュリティの脆弱性はありますか?

4

1 に答える 1

25

はい、一部のサンプルでこれを行っていますが、それは悪いことです。接続IDを漏らした場合、他の人があなたの接続であなたのメッセージを送受信する可能性があります。一意の別のIDを作成し、IDと接続IDの間のマッピングを内部に保存して、それらをマップし直すことができるようにします。

これは基本的にフォーム認証チケットと同じ考え方です。確かにそれは暗号化されていますが、誰かがそれを入手した場合、彼らは関係なくあなたになりすますことができます。

MessengRでこのロジックのサンプルを参照してください。 https://github.com/davidfowl/MessengR/blob/master/MessengR/Hubs/Chat.cs#L67

于 2012-07-26T06:09:18.497 に答える