javascript - 是否可以通过 javascript top.location 属性阻止直接访问?

标签 javascript iframe

我的第一个页面中有一个 IFrame,它加载了另一个我不希望它被直接访问的页面。所以我想如果我检查第二页中的 top.location 并且如果它与第一页 URL 相同则按正常方式进行操作,或者如果不相同则将用户记住为黑客,也许我可以确定第二页加载到第一页中。

代码如下:

第一页:

<html>
<head>
<title>1st Page</title>
</head>

<iframe src="2nd Page" name="frame1" height="80%" width="100%"></iframe>

</html>

第二页:

<script type="text/javascript">
    if(top.location == "1st Page URL") {
        // It's OK, Access is not direct
    } else {
        // It's not a normal access
    }
</script>  

看起来这段代码可以正常工作,但我不确定它是否万无一失。也许 top.location 可能被欺骗(如 $_SERVER['HTTP_REFERER'])或者它完全不可靠。我需要确定这一点。

最佳答案

好吧,您可以使用 JSP。将您的第二个页面(永远不应直接访问的页面)放置在项目的 WEB-INF 文件夹中,然后让主页对该资源执行 jsp:forward。这样就永远无法直接访问第二页。

关于javascript - 是否可以通过 javascript top.location 属性阻止直接访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7379055/

相关文章:

javascript - 无法使用 getJSON 提取数据

javascript - 检查使用包含 'synthetic event' 的对象调用的监视函数时, Jest 测试会导致 'currentTarget' 错误

javascript - Three.js 中同一位置的两种 Material

javascript - 如何调整 JavaScript 小部件的大小?

javascript - 在 java/html 成绩计算器中显示计算答案的问题

javascript - 托管在不同服务器上时刷新 iframe

wordpress - 在 iframe 的 SSL 站点中包含一个非 SSL 站点并正常查看

javascript - 通过消息事件获取iframe

javascript - 如何将带有视频的 iframe 拉伸(stretch)到其父级?

javascript - 防止嵌入式 YouTube 播放器电镀 onclick