我的第一个页面中有一个 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/