web-dev-qa-db-ja.com

Chromeがaccounts.google.comで実行しているようです)のように、ブラウザのメモリからログインパスワードをすぐに削除する方法はありますか?

私はいくつかのテストを行ったところ、Chromeのメモリダンプは、そのサイトにログインした後、gmail.com/Googleのパスワードを保持していません(ログインはaccounts.google.comで行われます) )。

(私のシステムはWindows 10 64ビットProfessional、Chrome 60)です。

私がテストした他のすべてのサイトのパスワードを見つけることができます。また、Firefoxで同じことを行うと、gmail.comのパスワードwillがメモリダンプに保存されます。これはChrome固有の動作です。

パスワードがメモリダンプに格納されないようにするために、多くのことを試みました。フォームを送信する前にパスワードフィールドのパスワードをハッシュしても、元の(ハッシュされていない)パスワードがメモリダンプに含まれます。 autocomplete = "off"を使用して、「非表示」フィールドと非表示のテキストフィールドからパスワードを送信してみました。 (ブラウザが組み込みのパスワードマネージャにパスワードを保存しようとしないようにするため)。

私はまた、もちろん-非アクティブ化されたパスワードストレージを試し、キャッシュをクリアし、Cache-Control/Pragma/Expires -headersを試しました。そして、私はGmailウェブサイトが実際にリクエストでハッシュされていない/元のパスワードをサーバーに送信することを知っています。したがって、パスワードを暗号化/ハッシュ/難読化するクライアント側の方法はありません。

つまり、私の質問は、パスワードがメモリダンプに含まれないようにgmail.com(accounts.google.com)が使用するものは何でも、自分のWebサイトに対して同じことを実行することは可能ですか? Chromeブラウザのハードコードされたgmail.com固有の機能?

そのサイトがメモリ上で大量の読み取り/書き込みアクティビティを引き起こし、ガベージコレクタがより速くクリーンアップするか、またはそのようなものであるため、偶然でしょうか?

23
Martin Fürholz

私が推測できることから、ここには本当に2つのオプションしかない:

オプション1:Googleで作業

最初に、Javascript /ネットワークの振る舞いを注意深く観察します。誰かがコメントで述べたように、完全なクローンから作業すると良い結果が得られる可能性があります。しかし、個人的には、そのようなハードコアデバッグを行うことを本当に望みません。

オプション2:役立つjavascript

POSTでパスワードを送信する以外のすべて。たとえば、以下はすべて有効な(テストされていない)ソリューションです。

  • 入力時にすべての文字を置き換えてみてください(たとえば、元のキーをセッション固有のキーを使用したスト​​リーム暗号で暗号化します-その後、反対側で回復できます)
  • 単にキー入力をキャプチャして、それをテキストボックスに表示されるようにシミュレートしてみてください(そのようにして、何もキャッシュされません-キーストロークがキャッシュされるとは思いません:D)
  • これが機能する保証はありません。ただし、投稿の直前に入力内容を操作してみてください(ただし、Ceaser Shiftのような単純なものは実際には機能しないことに注意してください。

テキストボックスの入力がメモリに保持されている可能性が高いため、上記のリストの2番目のアプローチが機能する(キー入力をキャプチャする)だけであると強く疑っています(Googleがこれを処理する方法がわかりませんが、私はリストの2番目のオプションを強く信じています)。

たぶん今日/明日、私はテスト付きの最小限の例を投稿します

2
Samuel Allan