我的第一页内有一个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']
),或者某种程度上它完全不可靠。我需要确定一下。
答案 0 :(得分:2)
好吧,你可以使用JSP。将您的第二个页面,即永远不应被直接访问的页面置于项目的WEB-INF文件夹中,然后让主页面执行jsp:前进到该资源。这样就无法直接访问第二页。
答案 1 :(得分:1)
top.location,HTTP referer和所有内容都可以轻松欺骗。没有必要尝试构建客户端安全检查。
相反,你应该专注于使用会话等使你的代码健壮。