2016-09-14 167 views
4

我有一個表單,我想將其嵌入到我的白名單上的網站中。如何僅允許iFrame嵌入白名單網站?

試圖嵌入它的其他網站應該只有一個錯誤頁面。

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

我希望我可以用$_SERVER['HTTP_REFERER']getForm.php檢查embeding網站,但它不工作。

有誰知道最佳做法或任何解決方法嗎?

提前致謝!

+1

您必須檢查發出請求的遠程地址的IP爲「getForm.php」,但IP可能被欺騙。看看全球的$ _SERVER'晚餐。我會認爲'REMOTE_ADDR'是網站撥打電話的IP地址,但我不是100%確定的,這可能只是客戶IP。 – ArtisticPhoenix

+0

你能找到解決方案嗎?我嘗試了$ _SERVER ['HTTP_REFERER'],它工作正常,但我讀了它可以被欺騙的地方,所以有更好的解決方案嗎? –

回答

7

大多數瀏覽器將支持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

希望它可以幫助一點!