自分はこれはセキュリティ上問題のある動作、ブラウザ側の脆弱性だと思っている。
もしHTTPでも自動入力を許してしまうと、ブラウザ側の同一生成元ポリシー(SameOriginPolicy/SOP)による対策はDNSインジェクションや偽装WiFiAPなどを利用して簡単に破られるので、簡単なJavascriptで網羅的にパスワードを詐取できる。従って、現存する全てのパスワードマネージャはSOPとHTTPSで守られていると考えていい。
パスワードマネージャの自動入力のクリックジャッキング脆弱性自体は、既に2年以上前にBugzillaにポストされていた(mala氏から教えて頂いた)が、セキュリティバグではないと判断されてしまっている。Chromiumにもポストしたが、セキュリティバグでないとリジェクトされてしまった。
しかし自分はこの問題には、ブラウザ側で対策すべき理由があると考えている。攻撃に利用されるクリックジャッキング未対策のウェブサイト側には、積極的に塞ぐ理由が(ごく一部のユーザーからの信頼以外)無く、ユーザが巧妙に仕掛けられた罠iframeを見破ることは事実上不可能だからだ。
・SNSのログインページにログイン後リダイレクト機能があり、同一SNS上に用意した自分のページのログインユーザ閲覧数を稼ぎたい場合。
・攻撃対象ユーザのリアルタイム情報自体に価値がある、標的型攻撃の場合
があるが、露見時のリスクから考えてもっと他に良い方法が有るだろう。
ユーザーの個人情報を集積し、広告を流すことで利益を得ているSNS側は、なるべく多くのユーザにログイン状態にいて欲しい。また、クリックジャッキング対策に有効なX-Frame-OptionsヘッダはまだXが付く標準化以前のものであり、必須ヘッダではない。そして、この対策をすることによって、ごく一部のユーザーの信頼の維持以外に直接的な利益が無い。
Evilなウェブサイトがユーザーのログインという同意を、第三者の攻撃に見せかけて捏造することさえ不可能でない。
クリックジャッキングによってログインした場合に、SNSには位置情報など、通常ユーザーの意思で保護されるべきリアルタイムの情報が意図せず伝わってしまう。
SNSが足跡機能やユーザー現在位置などリアルタイム情報を公開する機能を持っていれば、SNSを通じて第三者が"意図的にログアウトしたい状況下にある"ユーザーの情報を取得できる可能性がある。
そもそも、ログアウトしたはずのサイトにログインしているという事自体、ユーザの意図に反する動作で、安全でない環境にアクセスする際はCookieを削除してこまめにログアウトする、という初等的なセキュリティ対策を無効化してしまう。
ログインフォームにCSRF対策がなされていても、クリックジャッキング脆弱性があればログインを誘導でき、現状XSSは論外としても、ログインユーザに対するクリックジャッキングやCSRF脆弱性がウェブサイトの何処にも無いと言い切るのは無謀と考えられる。愉快犯がクリックジャッキングを二度成功させ、SNSや掲示板などにログインさせて犯行予告をポストできた場合、冤罪被害者が第三者による悪意あるCSRFやクリックジャッキングであると証明することはとても難しいのではないだろうか?
二段階のクリックジャッキングによってログインユーザを騙って犯行予告といった比較的簡単な条件ならもっと有りそうだ。
例えば、XFOヘッダに頼らなくても、以下のような解決法がある。
##iframe[src*="//"]サイト自身の機能を利用するためにiframeが必須なサイトがどれだけ有るか考えると、これが一番と思われる。