Что происходит с этими запросами, имеющими параметры запроса iframe = true & width = 80% & height = 80%? - PullRequest
8 голосов
/ 09 февраля 2012

Я использую приложение Rails 3.2. Я проверил инструменты Google для веб-мастеров и увидел множество ошибок HTTP 502 для случайных страниц. Странно то, что все они сканируются с ?iframe=true&width=80%&height=80% в качестве параметра запроса:

например. http://www.mypage.com/anypage?iframe=true&width=80%&height=80%

Конечно, я не связываю подобные страницы с внутренними страницами, они должны быть внешними. Проверка Google, подтверждает меня здесь - я вижу много других страниц, имеющих те же проблемы.

Похоже, что внешний сервис создает эти ссылки, но почему ??

Ответы [ 4 ]

4 голосов
/ 12 февраля 2012

Я тоже это вижу.За последние 24 часа у меня есть 9 просмотров на одной из моих страниц.Все они приходят с одного IP-адреса, который есть у Google в Mountain View.Ни у кого из них нет реферера.Кроме того, действительно интересно то, что у половины из них есть заголовки, подобные этому:

HTTP_ACCEPT           : */*
HTTP_ACCEPT_ENCODING  : gzip,deflate
HTTP_CONNECTION       : Keep-alive
HTTP_FROM             : googlebot(at)googlebot.com
HTTP_HOST             : mydomain.com
HTTP_USER_AGENT       : Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Но затем чередуются запросы с того же IP-адреса, для которых в исключении не сообщается никаких HTTP-заголовков.Я не уверен, означает ли это, что они не отправляются, или что-то в стеке Rails препятствует записи заголовков из-за некоторых других изменений в запросах.В любом случае запросы чередуются.

Рассматриваемая страница существует только около месяца, и в течение этого времени, согласно GA, было просмотрено только 5 запросов.

Все это заставляет меня поверить, что кто-то внутри Google делает что-то экспериментальное, что приводит к этим ошибочным кодировкам строки запроса, и приложения Rails видят это, потому что происходит сбой парсера QS стойки, тогда как другие платформы могутбудь более снисходительным.

Тем временем я могу обезопасить патч-стеллаж, просто чтобы перестать на меня кричать, но окончательный ответ о том, что происходит, придет от Google (кто-нибудь там?).

3 голосов
/ 22 июня 2012

Вы можете добавить это к своим инициализаторам, чтобы избавиться от ошибок (с Ruby 1.8.x):

module URI

  major, minor, patch = RUBY_VERSION.split('.').map { |v| v.to_i }

  if major == 1 && minor < 9
    def self.decode_www_form_component(str, enc=nil)
      if TBLDECWWWCOMP_.empty?
        tbl = {}
        256.times do |i|
          h, l = i>>4, i&15
          tbl['%%%X%X' % [h, l]] = i.chr
          tbl['%%%x%X' % [h, l]] = i.chr
          tbl['%%%X%x' % [h, l]] = i.chr
          tbl['%%%x%x' % [h, l]] = i.chr
        end
        tbl['+'] = ' '
        begin
          TBLDECWWWCOMP_.replace(tbl)
          TBLDECWWWCOMP_.freeze
        rescue
        end
      end
      str = str.gsub(/%(?![0-9a-fA-F]{2})/, "%25")
      str.gsub(/\+|%[0-9a-fA-F]{2}/) {|m| TBLDECWWWCOMP_[m]}
    end
  end

end

Все, что это делает, это кодирует символы%, за которыми не следуют два символа, вместо вызова исключения. Не уверен, что это такая хорошая идея, чтобы быть стойкой для обезьянок. Должна быть веская причина, по которой это не было сделано в геме (может быть, из-за безопасности?).

2 голосов
/ 16 марта 2012

Я только что узнал больше об этой проблеме. Похоже, что все ссылки приходят с spidername.com в соответствии с веб-мастером Google. Похоже, они добавляют это к URL-адресу и каким-то образом, когда вы нажимаете на него, для отображения содержимого будет использоваться iframe. Вероятно, используя javascript, чтобы увидеть, содержит ли url параметр iframe = query. Тем не менее, бот Google собирается прямо в iframe. Это вызывает проблему.

Я решил использовать правило перенаправления в nginx для решения этой проблемы.

0 голосов
/ 15 марта 2012

У меня та же проблема.Меня беспокоит, что это спам-ссылка третьей стороны, которая пытается понизить рейтинг моего сайта в Google.

...