2012-03-14 7 views
0

異なるiframeにいくつかの異なるウェブサイトを読み込むPHPページを作成しようとしています。これらのサイトのいくつかは、ログインするためにユーザーを必要とします。私がしなければならないことは、基本的にはユーザーが一度ユーザー名とパスワードを入力してから、他のすべてのフォームを入力することです(ログインには同じユーザーパスペアを使用します)。それらはあなたがDOMへのアクセス権を持っていない外部サイトであり、XSSは許可されず、すべてですが、実際にそれを達成するための他の方法があるかどうか疑問に思っていました。外部ウェブサイトのiframeにフォームを入力する

誰かが実際にキー押下をシミュレートし、基本的にフィールドからフィールドに移動し、本質的にユーザー名とパスを入力するjavascriptを持っていると示唆していましたが、実際のキーを押すので、他の提案?

注:thisもチェックしましたが、私の場合は他のサイト/ドメインに同意することはできません!

ありがとうございます - マイク

+0

これはJQueryで行うことができます。フォームを投稿しても、ユーザー名とパスワードを入力してください。 –

+1

ええ、ブラウザーのセキュリティがこれを防ぐ理由があります。あなたがしようとしているのは本当に陰影です。たとえば、これがうまくいけば、あるウェブサイトが他のウェブサイトに静かにフォーム要求を提出することができます(例えば、ログインしたFacebookのアカウントのタイムラインを更新するなど)。 – Hamish

+0

私は@ハミッシュに同意します – pixelbobby

答えて

1

です。

これらのサイトがドメイン(親ウィンドウとiframe)を共有している場合は、トップウィンドウが子iframeと通信することができます。 AJAXはクロスドメイン(インターサブドメインを含む)を防ぎますが、iframeはです。は同じトップドメインに属している限り通信します。

https://stackoverflow.com/a/9338955/575527https://stackoverflow.com/a/9676156/575527

より良いアプローチは、そのクッキーは、これらすべてのインラインフレーム(それらは同じトップドメインであると仮定した場合)に表示される「トップドメインクッキー」を持つことである参照します。 1つのログインページを使用して一度ログインすると、そのユーザーがログインしていれば、そのページの後続のリクエストでCookieとセッションを確認する必要があります。

これらのページはドメインは異なりますが、セッションIDをurlパラメータとしてiframeに渡すのではなく、クッキーとして渡します。 iframe内のWebサイトはセッションIDを解析し、それらのセッションが有効で現在の状態でログインしているかどうかをチェックします。

セッションIDが開いているので追加のCSRFとXSSチェックが必要です。

0

JavaScriptで説明することはできません。

ただし、ユーザーがログインした後にデータ/ウェブサイトで何をする必要があるかによって、リモートPOSTを使用してその動作をシミュレートすることができます。詳細は、this questionを参照してください。

関連する問題