有选择地显示页面

时间:2012-02-29 02:38:14

标签: security http iframe webserver

我有一个页面,我发送到iframe。 iframe本身是根据后端的逻辑有条件地显示的。只有iframe才能显示页面吗?

基本上我希望能够从iframe中调用该页面,但直接访问该URL的人将被重定向或阻止。

2 个答案:

答案 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
  }