24

HTTPSログイン後、ユーザーをサイトのHTTPページにリダイレクトしたい。サイト全体でHTTPSを使用することはありません。

私がこれまでに持っているのは次のとおりです。

  1. ユーザーはログインフォームを安全なサイトに投稿します
    • 安全なサーバーが資格情報を検証します
    • セキュアサーバーは302リダイレクトをクライアントに送信します

これは機能しますが、IE6の私のマシンでは、セキュリティで保護されたページを終了するときにデフォルトで警告が表示されるため、ユーザーにエラーメッセージが表示されます。これらのエラーは私にとってユーザビリティのキラーであり、したがってショートッパーです。手順3になるように変更しました

  • サーバーはメタリフレッシュでhtmlコードを送信します

しかし、これは非常に遅いです。私のローカルマシンでも、302リダイレクトを実行するよりも著しく遅くなります。

人々が使用する標準設定で手間のかからないリダイレクトの目標を達成するためのより良い方法はありますか?IE6は、トラフィックの20%〜25%を占めています。また、302リダイレクトについて警告するブラウザと警告しないブラウザについて、誰かが良い情報を持っていますか?私はIE6をブラックリストに載せることを検討しています。そうすれば、IE6だけが遅いメタリフレッシュを取得し、他のすべての人は速い302を取得します。

4

3 に答える 3

11

古いトピックを復活させますが、他の開発者が実装を選択できるように、次の投稿を完全にするために

警告メッセージなしで https から http に移動する 1 つの方法は、javascript を使用してクライアント リダイレクトを使用することです。

手順

  1. ユーザーは https フォームにログイン情報を入力し、ログイン ボタンをクリックします。
  2. ログインボタンは、ログイン検証のためにhttpsフォームにポストバックします(ログインが正しいと仮定します)。これもhttpsの下にある保留ページにリダイレクトされ、メッセージが表示されます(サイトがリダイレクトされるまでお待ちください)
  3. この保留ページは、http ページへの JavaScript リダイレクトを行います

ブラウザの警告メッセージは表示されません

HTH

于 2010-09-24T06:22:20.513 に答える
5

私は IE6 をブラックリストに載せることを検討しています。そうすれば、IE6 のみが遅いメタ リフレッシュを取得し、他のすべての人は高速な 302 を取得します。

私はそのようなことをします。また、アクセシビリティのために本文にプレーンな HTML リンクを含めます。

他のブラウザーの中には、HTTPS サイトを離れる際に同様の警告を表示するものもありますが、その場合は (通常は事前にチェックされている) 「今後は確認しない」ボタンが表示されます。したがって、彼らがあなたのサイトにたどり着くまでに、彼らはほぼ確実にその警告を消すように言っているでしょう. これによって警告が無意味になるわけではありませんが、少なくとも問題は軽減されます。

  1. 安全なサーバーが 302 リダイレクトをクライアントに送信します

POST への応答として 302 を送信しないでください。HTTP RFC を真剣に受け止めた理論上のブラウザーは、フォームを新しい URL に再投稿することで応答する可能性があります。(皮肉なことに、これにより、「安全でないサイトに再送信されている」という情報に関する IE6 の警告の誤解が少なくなります。) 代わりに、「303 See other」を使用してください。

于 2009-03-17T05:06:35.850 に答える
2

他に方法はないと思います。このエラー メッセージはユーザーのためのものであり、IE 7 と Firefox 3 にも表示されます。これを防ぐ唯一の方法は、ブラウザ内でサイトを信頼済みとして追加することです。

更新:ああ、混合コンテンツ エラーではありません。エラーを無効にできるとはまだ思いませんが、どちらを意味するかはわかります。一般に、セキュリティ エラーは、潜在的に危険なサイトからユーザーを保護するためのものであり、(潜在的に安全ではない) Web サイト自体によって無効にすることはできません。

于 2009-03-16T19:20:49.017 に答える