You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS/PHP判断本域访问及无需Cookie验证站内来源的可靠方法问询

解决方案:页面访问来源与本域验证

没问题,我来一步步拆解你的问题,附上实用代码和清晰说明:

一、判断页面是否为本域访问的代码

不管是前端JS还是后端PHP,核心思路都是对比当前页面域名和来源页面域名;如果是用户直接输入网址/书签访问(无来源),默认视为本域访问。

JavaScript 实现

function isSameDomainVisit() {
    const currentHost = window.location.host;
    // 直接访问(无来源)的情况,算成本域访问
    if (!document.referrer) return true;
    
    try {
        const referrerHost = new URL(document.referrer).host;
        return referrerHost === currentHost;
    } catch (e) {
        // 解析来源URL出错(比如无效格式),视为外部访问
        return false;
    }
}

// 调用示例
console.log(isSameDomainVisit() ? '本域访问' : '外部访问');

PHP 实现

function isSameDomainVisit() {
    $currentHost = $_SERVER['HTTP_HOST'];
    // 没有来源请求头,视为直接访问本域
    if (!isset($_SERVER['HTTP_REFERER'])) return true;
    
    $referrerHost = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
    // 解析失败或域名不匹配,判定为外部访问
    return $referrerHost === $currentHost;
}

// 调用示例
echo isSameDomainVisit() ? '本域访问' : '外部访问';

二、无Cookie方案:判断是否来自本站特定链接

不使用Cookie的话,URL参数标记是最可靠的方案——给你的特定链接加个专属查询参数,目标页面检查这个参数即可。

比如,把站内特定链接改成:https://yourdomain.com/target-page?from=special_product_link,然后在目标页面做验证:

JavaScript 实现(目标页面)

function isFromSpecialLink() {
    const urlParams = new URLSearchParams(window.location.search);
    // 检查是否存在约定的参数值
    return urlParams.get('from') === 'special_product_link';
}

// 调用示例
console.log(isFromSpecialLink() ? '来自本站特定链接' : '非特定链接访问');

PHP 实现(目标页面)

function isFromSpecialLink() {
    if (!isset($_GET['from'])) return false;
    // 匹配约定的参数值
    return $_GET['from'] === 'special_product_link';
}

// 调用示例
echo isFromSpecialLink() ? '来自本站特定链接' : '非特定链接访问';

小提示:如果怕参数被模仿,可以升级成带签名的参数(比如用时间戳+站点密钥生成哈希),但对于普通场景,简单的参数标记已经足够可靠。

三、关于来源验证的局限性补充

依赖referrer(不管是前端还是后端)有几个需要注意的点:

  • 用户直接输入网址、用书签访问时,referrer是空值;
  • 浏览器隐私模式或安全策略可能会屏蔽referrer;
  • HTTPS跳转HTTP时,referrer会被省略;
  • 带rel="noreferrer"属性的链接跳转时,不会发送referrer。

所以如果要更稳定的验证,优先用URL参数方案;如果只是判断本域/外部,结合referrer和直接访问的逻辑基本能覆盖大部分场景。

内容的提问来源于stack exchange,提问作者Craig Tucker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:35:38