Я разрабатываю PHP-сайт, и важно, чтобы некоторые его веб-страницы, созданные пользователем, не должны встраиваться в iframe в другие домены, если я этого не хочу.
Есть ли способ сделать это? Я заметил, что Vimeo предлагает премиум-пользователям установить список доменов, на которые может быть встроено видео, поэтому я предполагаю, что это возможно в некотором роде, несмотря на то, что я ничего не нашел...
Благодарю!
Вы можете включить javascript-код на страницы, которые не разрешены как/в iframe, который перенаправляет верхний кадр, а iframe становится бесполезным в большинстве случаев.
if ( window.self !== window.top ) {
window.top.location.href = window.location.href;
}
Большинство современных браузеров также уважают X-FRAME-OPTIONS
заголовочного поля, которые могут быть установлены на DENY
(страница не отображалась внутри фреймов) или SAMEORIGIN
(то же, что и DENY, но только если домен отличается от него).
Посмотрите на реферера.
if (!in_array($_SERVER['HTTP_REFERER'], $allowedReferers)) {
// STOP !!!!
echo "not today baby!";
die();
}
// GO !!!!
$_SERVER['HTTP_REFERER']
не всегда надежен => stackoverflow.com/a/6023980
HTTP_REFERER
и JS для проверки вещей в начале рендеринга.