私は基本的なチャットプログラムのための簡単なプロトコルを書いています。 私の質問は:クライアントがユーザー名とパスワードを提供して認証したら、クライアントにそれに続くパケットにトークンを提供するよう依頼する必要がありますか?または、サーバ上のテーブルに認証ステータスを保持しておけば十分ですか?クライアントが接続を切断して再接続するまでクライアントがそれを証明するとは決して想像しませんか?クライアント/サーバーアプリケーションの認証ポリシー
0
A
答えて
0
クライアントが正しい資格情報を与えた後に、それ以上のメッセージに対して認証を要求すべきではありません。あなたの容疑者は、すべてのメッセージに認証情報が含まれている必要があります。この実装では、「ログイン」で認証する必要はなく、各メッセージのセキュリティ情報を要求するだけです。
ログインに成功すると、パスワードやその他の「ユーザー」情報を変更するなど、クライアントの情報を更新するときにユーザー資格情報を要求する場合があります。 「パスワード変更」要求が開始されると、パスワードを要求する必要があります。
誰かがメッセージを傍受できないように、認証に暗号化が添付されていることを確認してください。また、いくつかのキー(数バイトの文字列のような)を持っているかもしれません。メッセージが正しいクライアントから来ていることを確認するために、受信メッセージごとに検証することができます(最初の段落で与えられた代替デザインではありません。