お客さんより修正依頼があった。
「ログインするときに自動入力で登録していたユーザーID&パスワードが、ユーザーを管理する画面でも同じように自動入力されて困る」って依頼。
これを聞いてははーんな俺。
あれかinput[name="***"]
がログインフォームと管理のフォームで同じテンプレート使っているからだろう。と予測する。
つーことで、管理画面のフォームではinput[name="admin***"]
とかにしてname
属性を変えてみる。
しかし。。。。うまくいきませんでした。
何度試しても症状は変わりません。
うーむ。調べてみる。
https://www.seeds-std.co.jp/seedsblog/727.html
なるほど。どうやらautocomplete="off"
って属性を用意すればいけるっぽい。やったね。
だめした・・・(°ω°; 何故?なんで?why?
・IE11以降とChromeは[type=”password”]な入力欄のautocomplete=”off”は無視するそうです。
what?まじ?
モダンなブラウザではパスワードを一括管理する機能が実装されています。ユーザが Web サイトでユーザ名とパスワードを入力した際、ブラウザはその値を記憶するかユーザに尋ねます。ユーザがその Web サイトを再び訪れた際には、ログインフィールドがブラウザに保存された値でオートフィルされます。 加えて、ユーザがマスターパスワードを設定すると、ログイン情報をマスターパスワードで暗号化した状態でブラウザに保存することができます。 マスターパスワードが用いられない場合でも、ブラウザのパスワード管理機能は純粋にセキュリティの向上につながります。パスワードをブラウザが保存すればユーザは覚えなくてもよいため、覚えなければならない場合よりも強固なパスワードをユーザが設定できるようになります。 このような理由から、モダンブラウザの多くはログインフィールドにおける autocomplete="off" をサポートしていません。
うーむ。なっとくっちゃー納得なんだけど、不必要なところにはいらないのよね。
他人のパスワードを指定するようなユーザ管理のページにおいて、パスワードフィールドのオートフィルを抑止したい場合、autocomplete="new-password" を指定するべきです。ただし、この機能はどのブラウザでもまだ実装されていません。
(^ω^#
どうするのー?どうすればいいのー?「仕様です^^」って笑顔で返事すればいいのー?
しかし救世主(記事)登場
最終的に辿り着いたのが「縦横幅2pxで透明なフィールドを置く」という解決策でした。これなら自動入力されないし、ユーザーにもほとんど影響がありません。めんどくさいですね。
やってみたらマジで効きました。ありがたやーありがたやー。
謎なフィールドが2つほどコードに残りますが、一応修正はできました。。。うーむ。めんどくさい。