LoginSignup
6
3

More than 5 years have passed since last update.

iOS9.0.2のSafariで意図しないフォームにユーザー名が自動入力される現象を調べた時のメモ

Last updated at Posted at 2015-10-09

発生した現象

ログインIDとパスワードを保存しているサイトで、ユーザー情報を編集する画面を開いた際に本来メールアドレスを入力する欄にログインIDが補完された。
iOS9.0.2でのみ発生。

再現してみる

とりあえず下記のような最小限のログインフォームのようなものを作ってlogin_idとpasswordの値を保存した。

<form method="POST">
  <div>
    login_id<input type="text" name="login_id">
  </div>
  <div>
    password<input type="password" name="password">
  </div>
  <div>
    <input type="submit">
  </div>
</form>

IMG_4912.PNG


自動入力が働いた時と同じ名前の入力欄があるページを作って開いてみる。

<form method="POST">
  <div>
    email<input type="text" name="email">
  </div>
  <div>
    <input type="submit">
  </div>
</form>

IMG_4913.PNG

あれ…入力されない…

色々試してみたところpasswdという名前の欄を追加すると再現することが分かった。(現象が発生したページにも存在する)

<form method="POST">
  <div>
    email<input type="text" name="email">
  </div>
  <div>
    passwd<input type="text" name="passwd">
  </div>
  <div>
    <input type="submit">
  </div>
</form>

IMG_4914.PNG

半端に略されてるのが気になりnameをpasswordにしても同様の動きをした。

ちなみにpasswdのtypeをpasswordにするとパスワードまで補完されてしまった。(name違うのに)

<form method="POST">
  <div>
    email<input type="text" name="email">
  </div>
  <div>
    passwd<input type="password" name="passwd">
  </div>
  <div>
    <input type="submit">
  </div>
</form>

IMG_4917.PNG

もう少し調べた

ユーザー名っぽい名前の欄とパスワードっぽい名前の欄があるとログインフォームだと判定されるのか、保存してあるユーザー名をユーザー名っぽい欄に入れることが分かった。

<form method="POST">
  <div>
    foo<input type="text" name="foo">
  </div>
  <div>
    username<input type="text" name="username">
  </div>
  <div>
    bar<input type="text" name="bar">
  </div>
  <div>
    passwd<input type="text" name="passwd">
  </div>
  <div>
    <input type="submit">
  </div>
</form>

IMG_4915.PNG

ユーザー名っぽい名前の欄が無ければパスワードっぽい名前の欄の直前に入る模様

<form method="POST">
  <div>
    foo<input type="text" name="foo">
  </div>
  <div>
    bar<input type="text" name="bar">
  </div>
  <div>
    passwd<input type="text" name="passwd">
  </div>
  <div>
    <input type="submit">
  </div>
</form>

IMG_4916.PNG

色々試してみた

ユーザー名っぽい名前

  • email
  • id
  • login_id
  • user_id
  • login_name
  • user_name
  • username
  • loginname

ユーザー名っぽくない名前

  • user
  • name
  • loginid
  • userid

パスワードっぽい名前

  • passwd
  • password
  • user_passwd
  • login_passwd

パスワードっぽくない名前

  • pass
  • pwd
  • pword
  • userpasswd
  • loginpasswd

ユーザー名っぽくない文字列同士でも組み合わせるとユーザー名っぽい文字列になったりする。
パスワードはpasswd、passwordあたりが単語として含まれていると認識される?
よくわからない。

結局

パスワードっぽかった欄の名前をパスワードっぽくない名前に変更することで凌いだ。

関連してそうな記事

iOS 9.0.1のSafariでログインフォームの自動入力が効かない

逆に自動入力してくれない話。
バージョンが近いし何か怪しい…

Safariのオートコンプリートの不思議な挙動

iOSの話ではないけど似た挙動の話。
この記事のオートコンプリートを抑止する方法は、パスワードっぽい欄のtypeがpasswordならiOSでも有効だった。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3