【问题标题】:Javascript referrer check based on the domain基于域的 Javascript 引荐来源网址检查
【发布时间】:2012-11-22 23:55:04
【问题描述】:

我需要页面上的 JS 来检查引荐来源 - 上一页 - 是否来自同一个域。

带有 JS 的页面的 URL 格式如下:

http://subdomain.site.com/dir/page?vs=123456

可能有多个以前的页面。因此,JS 需要检查域是否匹配。

如果域不同,我想将用户发送到另一个页面。

这是我试图开始的工作:

var matchHost = /^https?:\/\/.*\//;
var match = matchHost.exec(document.referrer);
var domain = "http://subdomain.site.com/dir/";   

if (match !== domain) {
window.location.href = domain;
}

但不太好用。

有什么想法吗?

【问题讨论】:

  • 永远不要相信推荐人。很容易被欺骗并且经常被压制。

标签: javascript referrer


【解决方案1】:

您可能根本不需要正则表达式。您知道您域的字符长度,例如使用 url http://example.com 计算字符,然后根据推荐的 url 域长度拆分字符串,然后将其与您的域 url 进行比较!就这些。

【讨论】:

    【解决方案2】:

    在您的情况下,match 是匹配字符串的数组。所以永远不会平等。你需要比较match[0]

    if (match.length== 0 || match[0]!== domain) ...
    

    或者你可以通过这样做完全避免正则表达式:

    if (document.referrer.substr (0, domain.length).toLowerCase()!== domain) ...
    

    【讨论】:

      猜你喜欢
      • 2013-12-28
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多