0

Firefox などでパスワード フィールドを含むフォームを送信すると、ブラウザにユーザー名とパスワードを記憶させるかどうか尋ねられます。たとえば、Firefox で gmail にログインすると、ポップアップに次のメッセージが表示されます。

google.com の「markamery@gmail.com」のパスワードを覚えていますか?

「パスワードを記憶する」、「今は使用しない」、「このサイトでは使用しない」オプションがあります。

複数の Web サイトでサービスを提供するために使用されるプラグインを開発しています。ユーザーは にアカウントを持ちmysite.com、 のようなクライアントは、ユーザーがサイトにサインインするために使用できるログイン フォームなど、当社のコンテンツと機能をページに追加する Web ページsomeclient.comの Javascript スクリプトを含めます。mysite.com(ログイン プロセスの実際の仕組みはすべて iframe、AJAX、および HTML5 で処理されますが、postMessage重要ではありません)。

ユーザーが でプラグインにログインするsomeclient.comと、ブラウザでパスワードを覚えるように促し、mysite.comでログイン フォームが表示されたときに、入力someotherclient.comしたのと同じユーザー名とパスワードでオートコンプリートされるようにしsomeclient.comます。ただし、現在、彼らは尋ねるプロンプトを受け取ります

someclient.com の「yourname」のパスワードを覚えておきますか?

代わりに、これは私が望むものではありません。

私が望むことは可能ですか?

4

1 に答える 1

0

フォームを iframe 内に配置すると、Firefox は少なくとも保存されたパスワードをメイン ページのドメインではなく iframe のドメインに関連付けます。postMessagesを使用して iframe と通信できます。

iframe でフォーム送信イベントをキャッチし、フォームのコンテンツをシリアル化し、postMessage を介してメイン ウィンドウに送信するだけです。その後、メイン ウィンドウはメッセージからフォームのコンテンツを取得し、Javascript を使用してそれを処理できます。

もちろん、単純なケースであっても、これはかなり醜いハックであり、iframe 内のコンテンツとメイン ページ内のコンテンツまたはコードとの間に複雑な相互作用がある場合、postMessage を介してそれらすべてを適切に処理しようとすると、すぐにエラーに陥る可能性があります。痛みとスパゲッティ。クロスドメイン パスワード オートコンプリートの価値が低く、主な問題が間違ったドメイン名を特徴とするパスワード記憶メッセージを表示することである場合は、コードベースをハッキングして修正するのではなく、単純に機能を完全に無効にすることを検討してください。ここで説明されているように、フォームの「オートコンプリート」属性を「オフ」に設定することで無効にできます:ブラウザの「パスワードの保存」機能を無効にする

于 2013-06-07T16:47:58.657 に答える