17

またはFirefoxはパスワード/ユーザー名の行き先をどのように判断しますか?

入力要素の名前、ID、タイトル、クラスを変更すると、Firefoxはパスワードまたは電子メールで入力し続けます。

4

4 に答える 4

33

Firefoxのソースコードを正しく理解している場合、ブラウザは最初にフォーム内のパスワードフィールドを探します。フォームに3つ以上のパスワードフィールドが含まれている場合、自動入力機能はそのフォームを無視します。

1〜3個のパスワードフィールドが見つかった後、ブラウザはログインフィールドを探します。ブラウザは最初のパスワードフィールドから逆方向検索を実行し、ログインフィールドがタイプtextoremailまたはurlorまたはtelorの最初に見つかったフィールドであると想定しますnumber

次のステップは、ページの読み込み時にフォームを確認するか、フォームを送信するかによって異なります。ページの読み込み中にチェックし、ログインフィールドと正確に1つのパスワードフィールドがある場合、ケースは単純で、ブラウザはフォームに入力できます。

その他の場合(フォーム送信または複数のパスワードフィールド)は、「スマート」ロジックを実行して、どのパスワードフィールドに新しいパスワードが含まれ、どのパスワードフィールドに古いパスワードが含まれるかを判断します(おそらく保存されているパスワードを更新します)。詳細に興味がある場合は、ソースコードをダウンロードしてtoolkit/components/passwordmgr/nsLoginManager.jsファイルを開いてください。チェックする関数は、、_fillFormです。_getFormFields_getPasswordFields

要約すると、Firefoxは、ログインまたはパスワードのフィールドを推測するためにID、名前、またはクラス属性を必要としません。タイプとフォームフィールドの順序に依存するだけです。

于 2012-05-24T21:57:53.603 に答える
7

これまでのところ機能している簡単なソリューションを試しました。2 つの非表示フィールドを作成すると、ブラウザーがそれらを自動入力します。

<input type="text" style="display: none">
<input type="password" style="display: none">
于 2015-07-16T17:12:00.270 に答える
5

ログインとパスワードの入力の間に無効な入力テキストを使用すると、うまくいくようです:

<input type="text" disabled="disabled" style="display:none">
于 2015-11-23T08:30:03.177 に答える
3

フォーム上の要素はこれらの 2 つだけですか? Firefox は、フォームの構造 (2 つの入力ボックス、1 つは通常のフラグ、もう 1 つはパスワードのフラグ) を保存し、入力要素の ID に関係なく、保存された情報を入力している可能性があります。

これを試してください: フォームに追加の入力要素を追加して、何が起こるかを確認してください。Firefox が何も入力しないか、最初のフィールドに名前が表示され、パスワード フィールドが入力されているのに、2 番目の入力要素が空白になっていることがわかります。

于 2012-05-24T15:37:41.937 に答える