6

我有一个非常有趣的问题,我无法解释。

每隔 2 到 6 秒 googlebot(我已经查找了 googlebots IP,它是真实的 [使用主机IP ])正在请求我们网站上不存在的页面(运行:php、apache、mongodb)(404s)。没有其他机器人或人类曾经请求过这样的页面!只是谷歌机器人。

每个请求看起来像这样:

/2de4f853c2853807b2e72387aa8928a4

/ea5700c343d1a9798bc554af7c1a330e

/e5aafa102d54ba7517703336846cc019

我们的代码不使用任何 32 个字符的字符串,并且没有类似我们网站内部或外部的链接。我们使用 codeigniter,所以起初我认为它是默认的 session_id,我检查过,它不是。

有没有人见过这样的事情?我们的网站在某些页面上使用了history.push,这会导致它吗?只是一个想法。

示例请求的原始数据:

array (
  'date' => '2012-12-01',
  'time' => '10:01:33 PM',
  'additional_data' => 
    array (
      'server_vars' => 
        array (
          'REDIRECT_STATUS' => '200',
          'HTTP_HOST' => 'www.xxxxxxx.com',
          'HTTP_ACCEPT' => '*/*',
          'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
          'HTTP_FROM' => 'googlebot(at)googlebot.com',
          'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
          'HTTP_X_FORWARDED_FOR' => 'xxxxxxx',
          'HTTP_X_FORWARDED_PORT' => '80',
          'HTTP_X_FORWARDED_PROTO' => 'http',
          'HTTP_CONNECTION' => 'keep-alive',
          'PATH' => '/sbin:/usr/sbin:/bin:/usr/bin:/home/ec2-user/ec2/bin',
          'SERVER_SIGNATURE' => '<address>Apache/2.2.22 (Amazon) Server at www.xxxxxxx.com Port 80</address>
',
          'SERVER_SOFTWARE' => 'Apache/2.2.22 (Amazon)',
          'SERVER_NAME' => 'www.xxxxxxx.com',
          'SERVER_ADDR' => 'xxxxxxxxxx',
          'SERVER_PORT' => '80',
          'REMOTE_ADDR' => '10.171.147.114',
          'REMOTE_PORT' => '40759',
          'REDIRECT_URL' => '/e5aafa102d54ba7517703336846cc019',
          'GATEWAY_INTERFACE' => 'CGI/1.1',
          'SERVER_PROTOCOL' => 'HTTP/1.1',
          'REQUEST_METHOD' => 'GET',
          'QUERY_STRING' => '',
          'REQUEST_URI' => '/e5aafa102d54ba7517703336846cc019',
          'SCRIPT_NAME' => '/index.php',
          'PATH_INFO' => '/e5aafa102d54ba7517703336846cc019',
          'PATH_TRANSLATED' => 'redirect:/index.php/e5aafa102d54ba7517703336846cc019',
          'PHP_SELF' => '/index.php/e5aafa102d54ba7517703336846cc019',
          'REQUEST_TIME' => 1354428093,
       ),
    'codeigiter_session' => 
      array (
        'session_id' => 'c795e40a279f58d9fbbf7f5501a26787',
        'ip_address' => '10.171.147.114',
        'user_agent' => 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
        'last_activity' => 1354428093,
        'user_data' => '',
    ),
  ),
)

我还能收集什么来解决这个问题。它很奇怪。


更新: 流量来自 2 个主要 IP 地址。10.171.147.114 & 10.161.46.102

我查过这些,它们不是 GoogleBot。

我从一个 IP 查找站点获得了此信息。

请记住,IP 地址范围 10.0.0.0 – 10.255.255.255、172.16.0.0 – 172.31.255.255、192.168.0.0 – 192.168.255.255 和 224.0.0.0 – 239.255.255.255 是保留 IP 地址供私人互联网使用和查找不返回任何结果。

我应该/可以对这些请求做些什么?这些请求的意义何在?如果这是一种 DOS 攻击,他们在这方面做得非常糟糕。

4

2 回答 2

1

为了回答这个问题,这个问题是由 aws load blancer 的运行状况检查造成的。出于某种原因,aws 正在使用 googlebot user_agent 在我们的服务器上执行它们。

于 2012-12-03T04:11:42.580 回答
0

在这里要做的第一件事是收集尽可能多的 IP 并找到 2 个问题的答案: 1. 你可以按网络对它们进行分组,比如 66.249.66.XXX 或 66.249.XXX.XXX 吗?如果不能 - 这不是 Gbot 2。这些 IP 的国家/地区是什么?如果你有几十个 - 这不是 Gbot。

我认为,这似乎不是谷歌机器人,因为他们不倾向于监控没有这种频率的站点地图的站点(除了一些特殊情况,如新闻站点)。

参考

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=80553

学习如何识别 Gbot。尝试一些在线 google bot ip 列表。它们可能已经过时,但仍为您提供有关地址集群的信息。更重要的是,google bot ips 很容易按网络分组。

你不能信任 HTTP_USER_AGENT,因为第三方很容易伪造它。

我会说您的网站受到来自某些网络的单独攻击。

我怀疑他们是否试图通过发送此哈希来猜测 PHP_SESSID。PHP_SESSID 出现在 URL 中的唯一原因是您已将 PHP 配置为不将其存储在 cookie 中(我认为您没有)。在 cookie 中发送 session_id 更容易、更自然,即使在攻击时也是如此。

检查他们发送的 POST 参数和 COOKIES。这可能会为您提供更多信息。

于 2012-12-02T15:06:17.650 回答