これについて少し考えてみましょう。
ユーザー認証は通常、次のように行われます。
- クライアントに身元を証明するよう依頼する
- ユーザーの身元証明を受け取る
- 将来、クライアントが自分の身元を証明するために使用できる一意のランダム文字列 (セッション トークン) を返します。
認証後に暗号化されていない HTTP に戻るのは悪い考えです。誰でもネットワーク上でセッション トークンを確認できます。彼らはそれを盗み、それを使用してユーザーになりすますことができます。例については、 FBControllerを参照するか、「セッション ハイジャック」で検索してください。
暗号化されていないセッションを使用してユーザー ID の証明を渡すことも、同様に悪い考えです。誰でもこれを再生して、ユーザーのふりをすることができます。X.509 証明書を使用する場合でも、ユーザー名/パスワードを使用する場合でも、すべて同じです。
本当に必要な場合は、Javascript を使用して独自の疑似 HTTPS を実装できます。たとえば Yahoo は、ネットワーク経由で送信する前に、JavaScript を使用してユーザー パスワードのソルト化された SHA1 を取得しました。Javascript を使用して、X.509 の秘密鍵を使用して nonce に署名し、公開証明書を送信することもできます。この方法を使用してもセッション ハイジャックの危険性があることに注意してください。
はるかに優れた方法は、標準の HTTPS を使用することです。完全な接続は暗号化されます。つまり、ユーザー証明の通過、セッション ハイジャック、またはユーザーが要求した情報の表示に関する機密性の問題はありません。