【问题标题】:how to website only can access from iframe如何网站只能从 iframe 访问
【发布时间】:2019-05-18 01:00:16
【问题描述】:

谁能帮帮我?我有这些网站:domain.com、domain.com/site2、domain.com/site3 和 site4.domain.com。站点 1,2 和 3 是 wordpress,site4 是 php 网站。在站点 1(domain.com)中,我创建了一个侧面板,我的目标是当用户访问我的所有站点时,他们仍然可以使用我的侧面板,因此我使用高级 iframe 在页面站点 1 上嵌入/iframe site2、3 和 4亲。如何使站点 2,3 和 4 只能从站点 1 打开或访问?例如,我将站点 2 iframe/嵌入到 domain.com/mypage 中,这样当用户打开 domain.com/mypage 时,站点 2 将通过 iframe 打开。但是当用户直接从 domain.com/site2 访问时,他们会重定向到 site1(domain.com/mypage) 或者他们只会看到空白页面。 我尝试修改 .htaccess 如下:

{

order deny,allow
deny from all
allow from domain.com/site2/12345

}

在 iframe 中:[iframe src="domain.com/site2/12345"]

但它不起作用。当我使用 url domain.com/site2 直接访问时,它在 site1 上显示 404,当我直接访问 domain.com/site2/12345 时,它可以打开 site2,但在 iframe 中它显示 404 site1 ...(不使用 https:// / 使用 https:// 时显示 404 site1 但仅使用 www.domain.com/site2/12345 时可以打开 site2)

【问题讨论】:

  • 您无法以可靠的方式成功实施这样的设置。成千上万的人在您之前尝试过。
  • 如果您的前 3 个网站使用 Wordpress,那么它们也使用 PHP。在开始处理 .htaccess 这样可能会阻止网站加载的文件之前,您可能需要对网站的底层技术有一个基本的了解。

标签: php wordpress .htaccess iframe


【解决方案1】:

我想我知道你想做什么,在这种情况下我认为这会起作用,但我还没有测试过(申请其他你认为合适的 iframe 和域)。

网站 2/3/4.com

if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://domain1.com') {
    include_once('sidebar.php');
} else {
    header('Location: http://domain1.com');
}

site1.com

<iframe src="http://domain2.com" frameborder="0"></iframe>

我的要求可能有误,但如果有推荐人,这应该会显示您的侧边栏内容,如果没有,它将重定向到 domain1.com。

一种更稳健的方法(以防由于某种原因未填充引荐来源网址)可能是将 url 参数添加到 iframe src 属性,例如

<iframe src="http://domain2.com?iframe=1" frameborder="0"></iframe>

然后检查一下

if (isset($_GET['iframe']) && $_GET['iframe'] == '1') {
    include_once('sidebar.php');
} else {
    header('Location: http://domain1.com');
}

但这也很容易被操纵,更好的方法可能是想出一个令牌/哈希来代替。

【讨论】:

    猜你喜欢
    • 2021-04-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 2014-11-17
    • 2012-08-12
    相关资源
    最近更新 更多