【问题标题】:How to Block Spam Referrers like darodar.com from Accessing Website?如何阻止 darodar.com 等垃圾邮件推荐人访问网站?
【发布时间】:2015-08-26 03:54:12
【问题描述】:

我有几个网站每天大约有 5% 的访问来自垃圾邮件引荐来源。关于这个引荐来源,我注意到一件奇怪的事情:它们显示在 Google Analytics 中,但我无法在我的自定义设计的表格中看到它们,在该表格中我将所有访问者插入到该网站,所以我认为他们只操纵 GA 代码,从未到达网站本身。

如果您点击他们的链接,他们会将您重定向到一些附属链接。

我不知道它们是否对我的 SEO/SERP 有影响,但我想摆脱它们。我可以通过htaccess 文件这样做吗?

一个特殊的方面是我从不同的论坛中获得访问者,例如页面。例如:forum.topic221122.darodar.comforum.topic125512.darodar.com 等,所以我想阻止整个 darodar.com 域。

除了darodar.com,还有econom.coiloveitaly.co 困扰着我的统计数据。我可以阻止他们来自htaccess吗?

【问题讨论】:

标签: .htaccess google-analytics referrer-spam


【解决方案1】:

这个blog post 表明垃圾邮件引用者操纵了 Google Analytics,并且从未真正访问过您的网站,因此阻止它们是没有意义的。如果您想减少虚假网站点击,Google Analytics 会提供filtering

【讨论】:

  • GA 过滤是完全 BS。它只会摆脱所谓的“已知”机器人和蜘蛛。未知的人是造成最大破坏的人。
  • @3Dom 您正在考虑“已知机器人和蜘蛛”选项,而回答者指的是在视图级别过滤与您的主机名不匹配的流量的可能性.
【解决方案2】:

您可以限制访问使用 .htaccess 或过滤所有机器人访问以免被 Google Analytics 跟踪。如果这不起作用,请设置 Google Analytics 过滤。有关如何执行此操作的更多详细信息,请参见此处:http://www.wiyre.com/google-analytics-darodar-forum-spam-what-is-it/

他们是俄罗斯人,但他们的蜘蛛通过中国和菲律宾进行。也许此时最好阻止整个 IP 地址,它们有多个子域。

【讨论】:

    【解决方案3】:

    我将这些 mod_rewrite 方法用于 semalt:

    RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?semalt\.com.*$ [NC]
    RewriteCond %{HTTP_REFERER} ^http(s)?://(.*\.)?semalt\.*$ [NC,OR]
    RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com\ [NC,OR]
    

    或使用 .htaccess 模块 mod_setenvif

    SetEnvIfNoCase Referer semalt.com spambot=yes
    SetEnvIfNoCase REMOTE_ADDR "217\.23\.11\.15" spambot=yes
    SetEnvIfNoCase REMOTE_ADDR "217\.23\.7\.144" spambot=yes
    
    Order allow,deny
    Allow from all
    Deny from env=spambot
    

    我什至创建了一个 Apache、Nginx 和 Varnish 黑名单以及 Google Analytics 段来防止引荐来源垃圾邮件流量,你可以在这里找到它:

    https://github.com/Stevie-Ray/referrer-spam-blocker/

    【讨论】:

      【解决方案4】:

      显然,这是由垃圾邮件发送者通过使用您网站的帐户 ID 直接与谷歌分析进行通信来完成的。因此,他们有效地告诉谷歌分析他们访问了您的页面,而实际上他们从未访问过。他们通过他们希望您访问的 URL 向分析表明自己的身份。所以你在谷歌分析中看到他们的流量,然后去看看。例如,他们将连接一个亚马逊会员帐户,因此他们试图从您的亚马逊购买中获得佣金。

      所以 .htaccess 对我没有任何帮助。您需要创建一个过滤器来过滤掉 (.*)/.darodar/.com 之类的内容

      我从中发现的真正不好的影响是它使我的网站统计数据无效

      【讨论】:

        【解决方案5】:

        是的,您可以使用 .htaccess 进行阻止,实际上您应该这样做。

        您的 .htaccess 文件可能如下所示:

        <IfModule mod_setenvif.c>
        # Set spammers referral as spambot
        SetEnvIfNoCase Referer darodar.com spambot=yes
        SetEnvIfNoCase Referer 7makemoneyonline.com spambot=yes
        ## add as many as you find
        
        Order allow,deny
        Allow from all
        Deny from env=spambot
        </IfModule>
        

        当流量来自这些站点时,它们会被此 .htaccess 阻止,因此 HTML 永远不会加载,因此不会启动 GA 脚本(来自这些站点)。

        一旦您在 Google Analytics(分析)中看到传入流量,他们就会尝试从您那里收集流量,然后尝试找出您访问该 URL 的来源。它对您的网站无害,但您的统计数据中充满了垃圾数据。

        Google Analytics 应该防止这种情况,就像 GMail 防止垃圾邮件一样。

        【讨论】:

        • 值得一提的是,这些网站实际上并没有访问您的网站,它们实际上只是破解了您的 GA 脚本。所以通过 htaccess 阻止它们并不总是万无一失的
        • @GaryWoodfine 这不是防弹的,你是对的,但他们仍然需要加载 HTML 才能知道你拥有哪个分配的跟踪 ID。这个策略肯定对我有用。
        • 您的解决方案没有问题。但是,要想从结果中消除这些家伙,您需要涵盖 GA 和 htaccess 文件。他们不会从您的站点加载 HTML,提取基本 GA 代码并循环执行一系列帐户 ID 欺骗访问是一项相当简单的程序员任务,这实际上就是他们所做的。我发表了一篇博文,说明如何与这些家伙作战garywoodfine.com/blocking-referrer-spam
        • 正如@Gary Woodfine 所说,大多数推荐人垃圾邮件都使用 GA 中的漏洞。这些垃圾邮件发送者不知道他们的目标是谁,他们只是针对随机跟踪 ID。 .htaccess 仅适用于 semalt 之类的爬虫,但不适用于大多数 darodar 之类的爬虫。我解释得更详细stackoverflow.com/a/28354319/3197362
        【解决方案6】:

        根据this entry,他们从未访问过您的网站,他们使用您的 UA 代码向 GA 伪造 HTTP 请求。因此,使用.htaccess 或任何其他方法阻止他们似乎毫无意义,因为他们从未真正进入您的网站,他们只是向 Google 发送虚假的“访问”数据。

        【讨论】:

          【解决方案7】:

          使用提供的链接过滤所有类型的未来和历史垃圾邮件。主机名过滤特别容易。

          https://www.ohow.co/ultimate-guide-to-removing-irrelevant-traffic-in-google-analytics/

          【讨论】:

            【解决方案8】:

            在您的网络服务器级别阻止任何机器人毫无意义 - 垃圾邮件发送者正在向 Google Analytics(分析)网络服务器发送虚假请求。他们所需要知道的只是网站域名和与之关联的 Google Analytics ID。 因此,您必须在网站代码中隐藏您的 Google Analytics ID。例如,您可以在 Google Analytics JS 代码中这样做:

            ga('create', 'UA-X' + 'XXXXX' + 'XX-X', 'auto');
            

            垃圾邮件发送者的机器人应该能够在此更改后执行 JS 代码来解析您的 Google Analytics(分析)ID(并且没有那么多机器人能够做到这一点)。

            https://nobodyonsecurity.com/security/fighting-google-analytics-referrer-spam

            【讨论】:

              【解决方案9】:

              .htaccess 不是最好的方法。在我的站点中,我使用 GA,选项跟踪信息,然后是参考排除列表。

              问候!

              【讨论】:

                【解决方案10】:

                Google Analytics(分析)中的大部分垃圾邮件从不访问您的网站,因此您无法使用任何服务器端解决方案阻止它们。

                Ghost Spam 直接命中 GA,通常只显示几天然后消失,这就是为什么有些人认为他们从 .htaccess 文件中阻止了它们,但实际上只是巧合。

                这种类型的垃圾邮件很容易被发现,因为它们使用假主机名或未设置。 (见下图)

                另一种类型,像 semalt 之类的爬虫,实际上会访问您的网站,并且可以从 .htaccess 文件中被阻止,但是,它们只是其中的一小部分。

                总而言之,要阻止 Google Analytics 中的垃圾邮件:

                • 爬虫: GA 中的服务器端解决方案或过滤器
                • Ghosts: 仅在 GA 中过滤

                防止被幽灵垃圾邮件击中的唯一有效解决方案是使用所有有效主机名创建一个包含过滤器

                首先你需要用所有有效的主机名创建一个正则表达式,像这样(你可以在网络报告中找到它们)

                yoursite\.com|shoppingcart\.com|translateservice\.net
                

                这些是一些例子;您可能有更多或更少的主机名。获得 REGEX 后,按照与上述相同的步骤进行更改:

                • 转到 Google Analytics(分析)中的 管理 标签
                • 选择查看列下的过滤器 > 新建过滤器
                • 过滤器类型 自定义 > 包含 > 过滤器字段 主机名
                • 文件模式复制你构建的主机名表达式

                对于爬虫,您必须创建一个不同的过滤器,构建一个包含所有垃圾邮件发送者的表达式

                spammer1|spammer2|spammer3|spammer4|spammer5
                
                • 过滤器类型 自定义 > 排除 > 过滤器字段 广告系列来源
                • 文件模式复制引用表达式

                每次使用过滤器时,保持未过滤视图很重要。

                如果您需要此解决方案的详细步骤,可以查看此关于 Google Analytics 中垃圾邮件的完整指南

                Guide to stop and remove All the spam in Google Analytics

                希望对你有帮助。

                主机名报告示例

                【讨论】:

                • 我真希望 Google 能解决这个问题....最近收到大量此类垃圾...我每天至少添加 1 个新的,有时甚至更多。
                • 主要问题是我的谷歌分析中有 20 个网站,发现了 20 多个引荐来源垃圾邮件主机。是否有任何更改可以为一个站点执行此操作并将其复制到其他站点?
                • 目前避免引用垃圾邮件的最佳方法是使用有效的主机名过滤器,不幸的是,由于每个站点都有自己的站点,因此无法从一个站点传递到另一个站点.我建议您至少开始为您的跟踪 id 以 1(可能是 2)UA-XXXXX-1 结尾的网站进行操作,因为这是受影响最大的,这可能需要一些时间,但 您将避免大多数垃圾邮件。您可以在我上面提供的链接中查看详细指南
                • 好东西,这真的应该是公认的答案!不过,我对“有效主机名过滤器”方法不了解的一件事 - 如果我是垃圾邮件发送者,有什么能阻止我报告说 translate.googleusercontent.com 作为主机名,从而绕过过滤器?
                • @PirateApp 在像您描述的情况下会有所帮助,机器人报废 UA 代码,但是,我认为由于 GA 代码具有标准格式,垃圾邮件发送者只是随机生成 UA 代码,在在这些情况下,加密您的代码将无济于事。无论如何,现在的垃圾邮件比 2 年前少了很多。因此,除非您受到直接攻击,否则我建议您将精力花在其他垃圾流量来源上,例如内部流量或机器人,这是当今更大的问题;)
                【解决方案11】:

                我们发现使用 htaccess 是阻止这些垃圾邮件的好方法。我已经在我的客户网站上实施了以下解决方案,到目前为止效果非常好。 最好的方法是通过包含子句来阻止它们,例如垃圾邮件 priceg.com 检查引荐来源网址中的 priceg。

                因为其中许多网站都在创建子域并重新访问,当他们调整 url 时,硬编码条件失败

                RewriteCond %{HTTP_REFERER} (priceg) [NC,OR]
                RewriteCond %{HTTP_REFERER} (darodar) [NC,OR]

                详细解释here

                【讨论】:

                • 在实现上面的 .htaccess 文件后,我注意到现在 Google Analytics 可以跟踪点击,而不会跟踪跳出。赢赢!
                【解决方案12】:

                Lunametrics 发布了一篇不错的文章,使用 Google 跟踪代码管理器解决了这个问题: http://www.lunametrics.com/blog/2014/03/11/goodbye-to-exclude-filters-google-analytics/

                【讨论】:

                • 我使用 GTM 并在完成此线程之前发现了那篇文章,它是最有用的文章之一,因为它解释了如何阻止从未访问过该站点且不受 .htaccess 指令影响的幽灵引荐来源网址.
                • 很高兴听到这个消息!我在视图上使用过滤器测试了几天,然后我将尝试 GTM 方法,看看会发生什么。我想我会永远使用后者。
                • 链接不再有效
                【解决方案13】:

                我认为避免虚假垃圾邮件的最有效方法是添加一个自定义维度,让您知道该网站确实被访问过,因为我们知道他们从未访问过该网站。

                ga('set', 'dimension1', "Hey I'm really here!!");
                ga('send', 'pageview');

                在这种情况下,您只需在页面中添加此行,然后添加过滤器以“包含”仅当维度具有预期值(“嘿,我真的在这里!!”)时

                【讨论】:

                  【解决方案14】:

                  2019 年更新

                  我可能对这个问题有一个解决方案,因为我发现其他解决方案都无效。

                  让我先解决现有解决方案的问题

                  1. 为每个引荐来源垃圾邮件域添加一个过滤器。
                  2. 您将添加多少个域?
                  3. 这些引荐来源垃圾邮件域中的大多数都存在一段时间,并且 然后消失
                  4. 维护推荐垃圾邮件域的黑名单。
                  5. 这变得更加复杂,因为它们的数量基本上是无穷无尽的。
                  6. 您必须不断更新黑名单。
                  7. 黑名单越大,扫描它的时间就越长
                  8. 其他任何事情,例如维护手动 htaccess 或其他任何事情都需要手动干预,这不会随着您的网站变得更受欢迎而扩展
                  9. 任何自动操作(例如使用 AI 来确定引荐来源垃圾邮件域的显示模式)都会发生命中/未命中

                  这些机器人是如何工作的?

                  首先,了解这些机器人的工作原理至关重要

                  1. 他们至少使用 /UA-\d{6}/ 之类的正则表达式模式来加载他们从种子网站开始后递归访问的跟踪 ID

                  我相信我的解决方案具有以下优势

                  1. 无需维护白名单和黑名单
                  2. 可以轻松应对其中的 99%,并且可以随时修改以使其达到 100%
                  3. 几乎不需要人工干预
                  4. 我们的想法是在脚本中根本没有跟踪 ID

                  这是一个例子

                  script.
                        //- Google Analytics ID
                        var a = [85, 65, 45, 49, 49, 49, 49, 49, 49, 49, 49, 49, 45, 50];
                  
                        var newScript = document.createElement("script");
                        newScript.type = "text/javascript";
                        newScript.setAttribute("async", "true");
                        newScript.setAttribute("src", "https://www.googletagmanager.com/gtag/js?id=" + a.map(i => String.fromCharCode(i)).join(""));
                        document.documentElement.firstChild.appendChild(newScript);
                  
                        window.dataLayer = window.dataLayer || [];
                        function gtag(){dataLayer.push(arguments);}
                        gtag('js', new Date());
                        gtag('config', a.map(i => String.fromCharCode(i)).join(""), { 'send_page_view': false });
                        // Feature detects Navigation Timing API support.
                        if (window.performance) {
                          // Gets the number of milliseconds since page load
                          // (and rounds the result since the value must be an integer).
                          var timeSincePageLoad = Math.round(performance.now());
                          console.log(timeSincePageLoad)
                          // Sends the timing event to Google Analytics.
                          gtag('event', 'timing_complete', {
                            'name': 'load',
                            'value': timeSincePageLoad,
                            'event_category': '#{title}'
                          });
                        }
                  
                  1. 我们采用一种非常简单的方法,将 'UA-1111111-1' 形式的跟踪 ID 分解为一个字符代码数组

                  2. 现在我们可以在任何需要引用跟踪 ID 的地方从 char 代码数组中动态构造跟踪 ID

                  3. 通过将其转换为以 8 为基数、十六进制的加密数字串、添加固定偏移量、每次运行期间的随机偏移量、RSA 使用私钥加密跟踪 ID,该方法可以变得无限复杂服务器并使用公钥解密,但基本方法非常快,因为 JS 中的数组非常快,可以轻松击败 99% 的机器人

                  【讨论】:

                    猜你喜欢
                    • 2015-02-25
                    • 2015-03-05
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2014-09-27
                    相关资源
                    最近更新 更多