我有一個頁面發送到iframe中。 iframe本身是基於後端邏輯條件顯示的。是否有可能只有iframe能夠顯示該頁面?選擇性顯示頁面
基本上我希望能夠從iframe中調用頁面,但直接訪問URL的人將被重定向或阻止。
我有一個頁面發送到iframe中。 iframe本身是基於後端邏輯條件顯示的。是否有可能只有iframe能夠顯示該頁面?選擇性顯示頁面
基本上我希望能夠從iframe中調用頁面,但直接訪問URL的人將被重定向或阻止。
您可以檢查Referer
標題並僅在與包含iframe的文檔的URL匹配時才爲頁面提供服務。但是這隻會讓用戶隨意瀏覽直接的URL。一般來說,答案是否定的,您無法控制用戶代理將如何顯示內容。
如果您確實需要這樣做,請動態生成父文檔,以便它包含具有嵌入式隨機一次性標記的iframe的URL。通過腳本生成iframe內容,該腳本在交付頁面之前檢查一次性標記的有效性,並同時從數據庫中刪除標記。您必須使iframe內容無法緩存,並且您可能會遇到與緩存相關的副作用,這些副作用會導致合法用戶的頁面不時崩潰。
讓我們假設您的iframe的網址爲http://example.com/myiframepage。呈現的iframe的頁面是http://example.com/parentpage
我假設你的父頁面已經有類似代碼:
//in parentpage :
if(can_show_iframe) {
}
你只需要向前邁進一步,並修改代碼myiframepage如下 -
//in myiframepage
if(can_show_iframe) {
//normal processing
}
else {
//return 403 error code which indicates access denied
}
感謝您的回答!在我的問題中,我的意思是如果有人去了,並將URL輸入到他們的瀏覽器中,或者嘗試使用iframe之外的某種方法訪問該頁面。 – 2012-02-29 20:54:52
當你說「這將只覆蓋一個用戶隨便瀏覽直接URL」用戶可以訪問該頁面的其他方式是什麼? – 2012-02-29 20:58:49
你可以簡單地僞造'Referer'頭來直接訪問頁面。 – Celada 2012-03-01 14:48:51