我有一个页面,我发送到iframe。 iframe本身是根据后端的逻辑有条件地显示的。只有iframe才能显示页面吗?
基本上我希望能够从iframe中调用该页面,但直接访问该URL的人将被重定向或阻止。
答案 0 :(得分:1)
您可以检查Referer
标题,并仅在与包含iframe的文档的网址匹配时才提供该页面。但这只会阻止用户随意浏览到直接URL。通常答案是否定的,您无法控制用户代理如何显示内容。
如果确实需要这样做,请动态生成父文档,使其包含带有嵌入式随机一次性标记的iframe的URL。 iframe内容由脚本生成,该脚本在传递页面之前检查一次性令牌的有效性,并同时从数据库中删除令牌。您必须使iframe内容无法缓存,并且您可能会遇到与缓存相关的副作用,导致页面不时为合法用户中断。
答案 1 :(得分:0)
让我们假设你的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
}