2016-09-14 14 views
4

ホワイトリストにあるウェブサイトに埋め込みたいフォームがあります。ホワイトリストに登録されたウェブサイトのみにiFrameを埋め込む方法を教えてください。

他のウェブサイトでは、埋め込みを試みるとエラーページしか表示されません。

<iframe src="https://domain.tld/getForm.php?embed=1&formId=123456"></iframe> 

私はの埋込みのウェブサイトをチェックするgetForm.php$_SERVER['HTTP_REFERER']を使用することができることを期待していたが、それは働いていません。

誰もがベストプラクティスまたは回避策を知っていますか?

ありがとうございます!

+1

あなたは 'getForm.php 'へのリクエストを行うリモートアドレスのIPをチェックする必要がありますが、IPは偽装することができます。 '$ _SERVER'夕食を見てください。私は 'REMOTE_ADDR'がコールを行っているサイトのIPだと思っていますが、私は100%確信していません。それは単にクライアントのIPかもしれません。 – ArtisticPhoenix

+0

これには解決策がありますか?私は$ _SERVER ['HTTP_REFERER']を試しましたが、うまくいきましたが、どこかに偽装されているのを読んだので、より良い解決策がありますか? –

答えて

7

ほとんどのブラウザは、X-Frame-Optionsヘッダーをサポートします。

このヘッダは防ぐことができますアクセス:オプションの

X-Frame-Options: ALLOW-FROM [uri] 

例:PHPで

X-Frame-Options: DENY 
X-Frame-Options: SAMEORIGIN 
X-Frame-Options: ALLOW-FROM https://example.com/ 

例:

X-Frame-Options: SAMEORIGIN 

そして、このヘッダは、アクセスを許可する

<?php header('X-Frame-Options: SAMEORIGIN'); ?> 

あなたはさらにここで読むことができます。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

が、それは少し役に立てば幸い!

関連する問題