web-dev-qa-db-ja.com

iframeチェックアウト手順

私は、ユーザーが潜在的にあらゆるサイトで製品を購入できるiframeを誰でも埋め込めるようにしたい会社で働いています。したがって、ユーザーがこのiframeにクレジットカード情報を入力するのは、一般的な使用例です。

この種の設定では、クリックジャッキングが典型的な攻撃経路であることを知っています。ただし、そのベクターは、チェックアウト手順の完了などの複雑なアクションを実行するように誘導するよりも、犠牲者にiframe内のボタンをクリックするように誘導することのほうが重要なようです。

このiframeの実装に慣れる前に知っておくべきこと:

  • このセットアップはまだクリックジャッキングに対して脆弱ですか?
  • このようなiframeに入力された情報を、キーロガーまたはiframeの上に浮かぶ見えないdivを介して読み取ることはできますか?
  • 私が説明したような設定には、他にどのような潜在的な攻撃ベクトルがありますか?
  • 考慮すべきセキュリティに関する追加の考慮事項はありますか?
4
clarkatron

このようなiframeに入力された情報を、キーロガーまたはiframeの上に浮かぶ見えないdivを介して読み取ることはできますか?

技術的には、親ドキュメントはユーザーのiframeとの対話をキャプチャできません。1しかしここでの主な問題は、ユーザーが操作しているボックスが実際にショップを表示しているiframeであり、完全に異なるドメインのコピーではないことをユーザーが確認できないことです。 (実際のショップのiframe上の単純なCSSオーバーレイも機能します。)

信頼できない可能性のあるサイトでは、ユーザーが安全に操作できる信頼できるiframeを確立できません。ブラウザのセキュリティインジケータ(完全なドメイン名と緑色の鍵のアイコンを表示)は、トップレベルのドキュメントでのみ機能します。そのため、認証/支払いプロバイダーはリダイレクトを使用して、ネストされたフレーム内ではなく信頼できるトップレベルのドキュメントでユーザーを認証/チェックアウトします。

1つまり、キーボードイベントは、親ドキュメントまたはiframeのどちらかにしか行きません。ただし、親はそれをキャプチャできず、iframe内で発生します。

4
Arminius