使网页不可嵌入

Make webpage not embeddable

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

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

谢谢!

您可以在不允许 as/in iframe 的页面上包含 javascript-code,这会重定向 top-frame,并且 iframe 在大多数情况下变得无用。

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

大多数现代浏览器也尊重 header-field X-FRAME-OPTIONS 可以设置为 DENY(页面未在框架内显示)或 SAMEORIGIN(与 DENY 相同,但前提是域不同)。

看看referrer

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

// GO !!!!