【问题标题】:Make webpage not embeddable使网页不可嵌入
【发布时间】:2015-08-03 07:21:26
【问题描述】:

我正在开发一个 PHP 网站,除非我愿意,否则它的某些网页(由用户生成)不得嵌入到其他域的 iframe 中,这一点至关重要。

有没有办法做到这一点?我注意到,即 Vimeo 为高级用户提供了一个可以嵌入视频的域列表,所以我想这在某些方面是可能的,尽管我还没有找到任何东西......

谢谢!

【问题讨论】:

  • 在url中使用掩码,通过登录凭证系统控制访问...

标签: php iframe embed


【解决方案1】:

您可以在不允许作为/在 iframe 中的页面上包含一个 javascript 代码,该代码会重定向顶部框架,并且 iframe 在大多数情况下变得无用。

if ( window.self !== window.top ) {
    window.top.location.href = window.location.href;
}

大多数现代浏览器也尊重标题字段X-FRAME-OPTIONS,可以设置为DENY(页面未显示在框架内)或SAMEORIGIN(与DENY相同,但仅当域不同时)。

【讨论】:

    【解决方案2】:

    看看referrer

    if (!in_array($_SERVER['HTTP_REFERER'], $allowedReferers)) {
        // STOP !!!!
        echo "not today baby!";
        die();
    }
    
    // GO !!!!
    

    【讨论】:

    • $_SERVER['HTTP_REFERER'] 并不总是可靠的 => stackoverflow.com/a/6023980
    • @Fred-ii- 是的,完全同意。最好结合使用 PHP 查看HTTP_REFERER 和 JS 在渲染开始时检查内容。
    • 谁想出了那个指令,应该想出一个 B 计划哈哈
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2020-11-12
    • 2018-07-03
    • 2013-10-21
    相关资源
    最近更新 更多