如何禁用对 Iframe 的直接访问

har*_*rry 4 javascript iframe jquery

假设我的用户通常通过https://www.mycompany.com/go/mybusinessname访问我们的网页

在这个网页中,我们有一个 iframe,它实际上来自https://www.mycompany.com/myapp

一切工作正常,除了如果由于某种原因,用户开始了解这个网址https://www.mycompany.com/myapp。他们可以通过在地址栏中键入内容来直接开始访问它。

这就是我想要阻止他们做的事情。有没有最佳实践可以实现这一目标?

====更新以提供更多背景====

父页面https://www.mycompany.com是该公司的页面,由其他团队维护。因此它们具有所有通用的页眉和页脚等,因此每个应用程序都在其中呈现为 iframe。(这也意味着我们无法更改父页面的代码)

如果用户直接访问https://www.mycompany.com/myapp,他们将无法看到页眉和页脚。是的,这没什么大不了的,但我只是想保持一致性。

我担心的另一个问题是,在我们的开发环境中(也称为本地运行页面时),我们没有父 iframe 的东西。我们直接从http://localhost:port访问我们的页面。因此我想找到一个解决方案,可以让我们在本地运行时也能正常访问它。

如果这样的简单解决方案不存在,也请告诉我:)

Wal*_*Boh 5

在 iframe 的源上,您可以使用 window.top.location 检查父窗口,并查看它是否设置为“ https://www.mycompany.com/go/mybusinessname ”。如果没有,请重定向页面。

var myUrl = 'https://www.mycompany.com/go/mybusinessname';

if(window.top.location.href !== myUrl) {
    window.top.location.href = myUrl;
}
Run Code Online (Sandbox Code Playgroud)