ホワイトリストにあるウェブサイトに埋め込みたいフォームがあります。
それを埋め込もうとする他のウェブサイトは、エラーページだけを受け取るはずです。
<iframe src="https://domain.tld/getForm.php?embed=1&formId=123456"></iframe>
$_SERVER['HTTP_REFERER']
でgetForm.php
を使用して、埋め込みWebサイトを確認できることを期待していましたが、機能していません。
誰かがベストプラクティスや回避策を知っていますか?
前もって感謝します!
ほとんどのブラウザはX-Frame-Optionsヘッダーをサポートします。
このヘッダーはアクセスを防ぎます:
X-Frame-Options: SAMEORIGIN
そして、アクセスを許可するこのヘッダー:
X-Frame-Options: ALLOW-FROM [uri]
オプションの例:
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/
PHPの例:
<?php header('X-Frame-Options: SAMEORIGIN'); ?>
ここでさらに読むことができます: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
それが少し役立つことを願っています!
現在、コンテンツセキュリティポリシーヘッダーが推奨されるアプローチです。
MDNの例:
// iframe can be embedded in pages on the Origin and also on https://www.example.org
Content-Security-Policy: frame-ancestors 'self' https://www.example.org;
詳細については、以下を参照してください。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors