0

シナリオは次のとおりです。Parent.comには「htmlのみ」のファイルを含めることができ、Iframe.comを含むiframe(完全な\ controllを持つphp)があります。

質問はこれです:iframe.comが親によってのみロードされ、他のドメインによってiframedできないかどうかを確認するにはどうすればよいですか?

編集:いくつかの解決策はリファラーをチェックすることを提案していますが、これはなりすましの可能性があります。

4

1 に答える 1

1

referer本当に複雑な領域に入る前にあなたが得ることができる限り近くにあります。

なりすましは可能ですが、クライアントのみがなりすまし可能です。サードパーティのWebサイトは、クライアントになりすまさせることができませんでした。

とはいえ、refererオプションです。ブラウザはそれを送信する必要はなく、非常に多くの状況(参照ドキュメントがHTTPS経由で提供された場合など)では送信されない傾向があります。

以下はうまくいくかもしれません…</p>

  1. iframe.example.comは、サーバー側のコードを使用してframed.example.netからトークンをリクエストします。リクエストには、ブラウザーのIPアドレスと、iframe.example.comにframeframed.example.netを許可するパスワードが含まれます。
  2. framed.example.netはトークンを生成し、それをiframe.example.comに渡し、ブラウザーのIPアドレスに対して登録します。
  3. iframe.example.comは、クエリ文字列にトークンを含むURIを生成し、それをiframeへのsrcとして使用します
  4. framed.example.netは、トークンが存在し、レコード内のIPアドレスがリクエストの送信元のIPアドレスと一致することを確認します(ブラウザー)

これにより、ブラウザに一貫したIPアドレスがない場合(セルラーブロードバンドでは非常に一般的であると思われるプロキシサーバーのグループの背後にある場合など)にフォールスネガティブが生成されるため、お勧めしません。

于 2012-11-12T19:15:11.753 に答える