2

私は何人かの人々のコンピューターを手伝い、修理してきました。これらの人々の1人が、自動フォームフィールドにパスワードを保存することの安全性について私に尋ねました。コンソールでの単純なjQuery呼び出しからパスワードを取得する方法についての簡単なトリックを紹介しました。いくつかのウェブサイトで作業している間、私は保存されたパスワードが何であるかを見つけるためにこのトリックの使用を防ぐ方法を見つけようとしていました。

わからない場合に何について話しているのかを理解するには、次のことを試してください。

  1. jqueryを使用してWebサイトに移動し(またはサイトをjquerifyして)、自動フォーム入力をオンにするか、パスワードフィールドに入力します。
  2. 要素を検査して、パスワードIDフィールドまたはjqueryでフィールドを呼び出す何らかの方法を表示します
  3. コンソールで次のようなものを実行し$('#password').val()、パスワードが表示されるのを確認します。

Web開発者として、自分のサイトでこれを使用しないようにする一方で、サイトコード内のフィールドの値を取得するためにそれを使用できるようにする方法があるかどうか疑問に思っています。

ありがとう。

編集

ログインが自動入力されたFacebookから(セキュリティのために黒く塗りつぶされています)

ここに画像の説明を入力してください

次に、ページをjquerifyし、$jq('#pass').val()何も変更せずにコンソールで実行した後(セキュリティのためにパスワードを黒く塗りつぶします)

ここに画像の説明を入力してください

使用事例

ユーザー1は公共のコンピューターを使用しており、ブラウザーがログイン情報を保存できるようにします

ユーザー1が離れ、ユーザー2が同じサイトに移動します。ブラウザはログイン情報を自動入力します

ユーザー2がコマンドを実行し、パスワードにアクセスします

4

2 に答える 2

4

簡単な答え:いいえ。論理的には、このフィールドのデータにアクセスする機能を削除して、自動入力の機能を保持する方法ありません。パスワードボックスの値はパスワードであり、それが送信したいものです。これを適切に防ぐには、オートフィルを無効にする必要があります。

でも...

password入力ボックスから値を取り出し、それを。で空白にすることで、値を非表示にできる場合があります.val("")。次に、送信時のボックスの内容ではなく、値を格納する変数を送信します。変数名をわかりにくくする多くのツールの1つを使用してスクリプトを縮小すると、値を見つけるのが少し難しくなります(確かに不可能ではありませんが)。値を暗号化して復号化することで、ますます夢中になりますが、スクリプト自体が適切なタイミングでパスワードにアクセスできるように、 1日の終わりに、パスワードを取得するためのすべてのキーをスクリプトに含める必要があります。あなたは誰かがそれにショットを与えたが、熱心な人ではないいくつかのケースを止めるでしょう。

また、次のすべての注意事項に留意する必要があります。

  • ユーザーがパスワード変数を変更しない場合にのみ、パスワード変数を送信する必要があります。ユーザーがパスワードボックスの情報を更新した場合は、代わりにそれを送信する必要があります。knockout.jsのようなツールを使用すると、ユーザーがそのボックスに入力したものを継続的に取得および非表示にできる可能性がありますが、それは別の複雑な層になります

  • 何が起こっているのかをユーザーに明確にしたいと思うでしょう。パスワードボックスが突然空白になった場合、ほとんどのユーザーは非常に混乱します。

でも現実的にしましょう。「ハッカー」が誰かのコンピューターに直接アクセスでき、パスワードが必要な場合は、パスワードを取得します。JavaScriptを利用する前に、最初にパスワードを取得する方法は他にもたくさんあります(キーロガー、入力時に背後に立つ、HTTPSを使用していない場合やデータを暗号化していない場合はパケットスニファ、鈍いオブジェクトで攻撃するなど)。 )これについてはどこかにXKCDストリップがあります。編集:それを見つけた:)

于 2012-08-17T21:10:06.377 に答える
0

オートコンプリートを無効にするだけで、パスワードが入力フィールドに保存されなくなります。

input type = "password" autocomplete = "off"

于 2015-03-23T08:49:08.450 に答える