Как ограничить отображение iframe только с внешнего сайта на определенные домены
Я управляю службой, где клиентский контент готов и отображается в iframe. Затем клиент копирует рудиментарный тег iframe html и вставляет его в свою веб-страницу. Некоторые клиенты жалуются, что другие сайты копируют тэг iframe и вставляют его на свои сайты.
Можно ли ограничить отображение содержимого iframe определенным доменом или доменами? Возможно, программно говоря iframe, что его родитель должен быть some-domain.com или иначе не отображаться.
Это имеет смысл? Иногда я могу быть слишком многословным.
Ответы
Ответ 1
вы можете использовать .htaccess(предполагая, что исходное содержимое находится на сервере Apache), чтобы ограничить доступ к определенному IP-адресу.
Или, если страница является PHP, вы можете ограничить ее определенным доменом, например:
<?php
$continue = 0;
if(isset($_SERVER['HTTP_REFERER'])) {
//correct domain:
$ar=parse_url($_SERVER['HTTP_REFERER']);
if( strpos($ar['host'], 'yourdomain.com') === false ){
} else {
$continue = 1;
}
}
if($continue == 0){
header('HTTP/1.0 403 Forbidden');
exit('Forbidden');
}
?>
Ответ 2
Похоже на проверку, которая лучше сделана на стороне сервера - вы можете проверить разметку iFrame на список допустимых имен доменов (или родительских доменных имен) и отклонить ее, если они недействительны.
Вы можете сделать все вышеперечисленное в javascript, прежде чем вводить iFrame на страницу, но если javascript выключен, ваша проверка не будет работать, не говоря уже о том, что с инструментами разработки на клиенте можно изменить любой javascript.