2012-03-21 3 views
1

Я пытаюсь войти в систему GoogleBot на свой сайт и обходить аутентификацию. Веб-сайт использует программу для ее аутентификации, и я думал о создании имени пользователя для Google, а затем позволить GoogleBot автоматически входить в систему для этого пользователя.Rails 3 - проверка подлинности на основе IP-адресов

Способ, которым я хочу определить GoogleBot, основан на его IP-адресах.

Можно ли связать список IP-адресов с именем пользователя и обойти процесс входа в систему?

Спасибо,

ответ

4

Просто предупреждение: Google имеет политику, он не будет индексировать контент, который не может быть доступны без входа в систему. Существует специальная политика, которая действует вокруг этого ограничения под названием «First Click Free» (см. http://googlewebmastercentral.blogspot.com/2008/10/first-click-free-for-web-search.html), используемого сайтами, такими как ExpertExchange. Если вы нарушите эту политику, Google может нанести ущерб вашему сайту, эффективно удалив его из большинства запросов. Центр веб-мастеров Google также является хорошим ресурсом для этого материала, см. http://support.google.com/webmasters/bin/answer.py?hl=en&answer=40349, в качестве отправной точки.

+0

Спасибо за ваш ответ. Я проверил страницу, и она говорит, что мы можем позволить googlebot видеть содержимое любой страницы, если мы следуем приведенному выше правилу, и это нормально. Мне нужно знать, как убедиться, что googlebot может обойти проверку подлинности Devise. – Reza

+0

Чтобы обойти GoogleBot Devise, сначала напишите метод, который проверяет запрос от подлинного IP-адреса googlebot, возможно, назовите его 'valid_robot?', А затем напишите метод в 'application_controller.rb', который называется что-то вроде' custom_authenticate_user! '. Этот метод выполнил бы ваш метод 'valid_robot? 'И просто вернул бы истину соответственно или перешел к методу' authenticate_user! 'Devise. Наконец, в переднем фильтре для страниц, на которые вы хотите включить ботов, замените/добавьте вызовы на свой собственный метод проверки подлинности. См. Второй ответ на http://stackoverflow.com/questions/6034410/before-filter-with-devise. –

0

Самый простой способ сделать это, на мой взгляд, чтобы обнаружить IP, а затем имитировать вход, если вы уже создали логин для бота Google.

Если вы уже создали учетную запись, вы можете добавить код в действие по умолчанию для автоматического входа в систему для бота google после его действия.

В широком смысле,

# ...... 
# ...... 
#inside the controller that has the application's home route 

def index #assuming index is the default action 
    ip = request.remote_ip 
    if ip == Google 
    #redirect to login with the account you created for google 
    else 
    #other processing 
    end 
end 
+0

Я не уверен, что googlebot хранит файлы cookie, поэтому такой подход может не работать. – Reza

+1

У вас должен быть более сложный код, чем просто проверка IP-адреса; несколько искателей с разных адресов могут получать доступ к вашему контенту в одно и то же время, поэтому вы можете получить другой экземпляр или сервер искателя при последующих запросах. Вот предложение Google для обнаружения подлинного GoogleBot: http://support.google.com/webmasters/bin/answer.py?hl=ru&answer=80553 –

Смежные вопросы