我正在为慈善事业筹建一些小部件。由于某些徽标许可Malarkey,我必须找到某种方法仅允许白名单上的网站运行代码,或者发送错误消息(或类似的东西)而不是小部件。

我们必须使用iFrame,因为很少有网站已经嵌入了它们。
理想情况下,PHP解决方案是最好的,但是如果需要,JS也可以。

因此,一类类轮;我可以检查iFrame所在的域并向其发送其他内容吗?

我不知道能够做到这一点的机会是什么...

最佳答案

您可以使用HTTP_REFERER header 。

<?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";

07-24 16:38