Разрешить загружать iFrame только определенным доменам - PullRequest
7 голосов
/ 06 мая 2010

Я создаю несколько виджетов для благотворительности. Из-за какой-то проблемы с лицензированием логотипа мне нужно найти способ разрешить запуск кода только для сайтов из белого списка или для отправки сообщения об ошибке (или чего-то в этом роде) вместо виджета.

Мы должны использовать iFrames, так как некоторые сайты уже внедрили их. В идеале, PHP-решение было бы лучше, но JS в порядке, если нужно.

Итак, один вкладыш; Могу ли я проверить домен, в котором находится iFrame, и отправить ему другой контент?

Интересно, каковы шансы сделать это ...

1 Ответ

5 голосов
/ 06 мая 2010

Вы можете использовать заголовок HTTP_REFERER.

<?php

$allowed_domains = array(
        'a-good-domain.com',
        'another-nice-one.org',
        );

$allowed = false;
foreach ($allowed_domains as $a) {
    if (preg_match("@https?://$a/.*@", $_SERVER['HTTP_REFERER'])) {
        $allowed = true;
    } 
}

if ($allowed) 
    echo "Nice domain";
else
    echo "Ugly domain";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...