2016-10-31 4 views
0

SignalRのConnectionTokenの役割は何ですか?トランスポートにSSLを使用する場合、SignalRのConnectionTokenを保護する必要がありますか?

私はFiddlerでSignalRハンドシェイクを検査し、ConnectionTokenがネゴシエーション要求への応答で渡されていることを確認し、その後のすべての要求を渡しました。

しかし、WSフレームを調べると、私はそのConnectionTokenのトレースを見ませんでした。それは、フィドラーが私からそれを隠すか、それとも単純に電線に渡されないからですか?

電線に通されていないため、その目的は何ですか? これが電線に渡された場合、輸送がsslを超えていても秘密と見なされますか?どのようにして攻撃者はそのトークンを悪用できますか?

答えて

0

接続トークンは、接続IDと利用可能な場合はユーザー名を含む暗号化された文字列です。クライアントからサーバーに送信された各http要求とともに送信する必要があります。サーバーが接続トークンなしで要求を受信した場合、または接続トークンを復号できない場合は、要求を拒否します。接続トークンとその動作の詳細については、this articleを参照してください。

WebSocketが開かれたときに接続トークンが検証され(connect要求)、さらなる検証が不要であるため、接続トークンがwebsocketフレームに表示されません。このWebSocketを他のユーザーが使用することはできません。接続が切断され、クライアントが再接続を試みた場合に備えて、接続トークンが再度表示されます。

その他のトランスポートは(メッセージの送信などの)より多くのhttpリクエストを送信します。これらのリクエスト(pingを除く)のそれぞれには接続トークンが含まれています。詳細については、前に書いたSignalR protocol descriptionをご覧ください。

関連する問題