使用referrer运行脚本

发布于 2024-08-16 03:55:48 字数 100 浏览 4 评论 0原文

我想知道是否可以根据引用网站执行脚本。例如,如果用户从 Facebook 访问我的网站,那么我希望激活该脚本,但如果用户通过 google 搜索访问该网站,则该脚本将不会运行。这可能吗?

I was wondering if it is possible to execute a script depending on the referrer site. for example if a user accesses my site from Facebook then i want the script to be activated, but if the user accessed the site through google search then the script will not be ran. Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

独木成林 2024-08-23 03:55:48

您应该能够测试 $_SERVER['HTTP_REFERER'] 来查看用户是否来自 Facebook 以及行为是否有所不同。

You should be able to test $_SERVER['HTTP_REFERER'] to see if the user came from facebook and behave differently.

腻橙味 2024-08-23 03:55:48

您是指服务器端脚本还是客户端脚本?

从客户端,您可以通过 document.referrer 访问引荐来源网址(是的,使用双“r”,即使相应的 HTTP 标头拼写错误)。例如。:

if (document.referrer.toLowerCase().indexOf('//www.example.com')) {
    document.getElementById('message').innerHTML= 'Hello, visitor from example.com';
}

Do you mean a server-side or client-side script?

From the client side you can access the referrer through document.referrer (yes, with a doubled ‘r’, even though the corresponding HTTP header is mis-spelled). eg.:

if (document.referrer.toLowerCase().indexOf('//www.example.com')) {
    document.getElementById('message').innerHTML= 'Hello, visitor from example.com';
}
妖妓 2024-08-23 03:55:48

这是有可能的。请记住,引用者可能会被欺骗,因此您永远不应该根据其值执行与安全相关的操作。

It's possible. Just bear in mind that the referer can be spoofed, so you should never do security relevant things based on its value.

兰花执着 2024-08-23 03:55:48

我会做这样的事情:

if (array_key_exists('HTTP_REFERER', $_SERVER) === true)
{
    // this will give you something like google.com or facebook.com
    $domain = str_ireplace('www.', '', parse_url($_SERVER['HTTP_REFERER'], 'PHP_URL_HOST'));

    // check if there is any referer script you want to execute
    if (is_file('path/to/scripts/' . $domain . '.php') === true)
    {
        // include the path/to/scripts/google.com.php for instance
        include('path/to/scripts/' . $domain . '.php');
    }
}

I would do something like this:

if (array_key_exists('HTTP_REFERER', $_SERVER) === true)
{
    // this will give you something like google.com or facebook.com
    $domain = str_ireplace('www.', '', parse_url($_SERVER['HTTP_REFERER'], 'PHP_URL_HOST'));

    // check if there is any referer script you want to execute
    if (is_file('path/to/scripts/' . $domain . '.php') === true)
    {
        // include the path/to/scripts/google.com.php for instance
        include('path/to/scripts/' . $domain . '.php');
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文