【问题标题】:Deny a user to access Iframe web page using asp.net拒绝用户使用 asp.net 访问 iframe 网页
【发布时间】:2013-11-21 08:23:05
【问题描述】:

在我的默认网页中,当用户单击某些内容(使用 JS)时,我会弹出一些 Iframe。

如何防止用户直接访问链接:WWW.mydomain.com/Iframe.aspx 并查看完整页面,但在他们单击默认页面中的 iframe 按钮时仍授予他们访问权限。

默认 - default.aspx iframe - iframe.aspx。

谢谢。

【问题讨论】:

  • 在您的主页(包含 iframe 的页面)中,您可以生成 iframe 作为 GET 参数接受的一次性令牌,除非它收到有效的令牌(即。如果用户通过带有旧令牌或没有令牌的直接 URL 访问)。

标签: c# javascript asp.net iframe


【解决方案1】:

Web 应用程序使用一种称为Frame killer 的技术来防止其网页显示在框架内。在你的情况下,它有点相反,但我们可以借用一个类似的想法。

如果您在单击按钮时将Iframe.aspx 显示为弹出窗口。如果window.opener 为空,您可以在Iframe.aspx 抛出错误中检查window.opener。像这样:

<script type="text/javascript">
  if(!window.opener) {
      throw new Error();       
  }
</script>

如果您的 Iframe.aspx 嵌入在弹出窗口的 iframe 中。您可以使用window.parent.opener进一步检查它

<script type="text/javascript">
      if(!window.parent.opener) {
          throw new Error();       
      }
    </script>

请注意,该技术确实存在上述链接中指出的局限性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 2012-05-19
    • 1970-01-01
    相关资源
    最近更新 更多