2012-03-21 91 views
1

我試圖讓GoogleBot登錄到我的網站並繞過身份驗證。 該網站使用設計進行身份驗證,我正在考慮爲Google創建用戶名,然後讓GoogleBot自動登錄該用戶。Rails 3 - 設計基於IP的身份驗證

我想識別GoogleBot的方式是基於它的IP地址。

有沒有辦法將IP地址列表鏈接到用戶名並繞過登錄過程?

感謝,

回答

4

只是一個警告:谷歌有它不會索引內容不能沒有登錄訪問的策略。實際上有一個特殊的策略可以解決像ExpertExchange這樣的網站使用的稱爲「免費首次點擊」(請參閱​​http://googlewebmastercentral.blogspot.com/2008/10/first-click-free-for-web-search.html)的限制。如果您違反此政策,Google可能會對您的網站進行有效處罰,並將其從大多數搜索中有效刪除。谷歌網站管理員中心也是這個東西的一個很好的資源,參見http://support.google.com/webmasters/bin/answer.py?hl=en&answer=40349,作爲一個起點。

+0

感謝您的回答。我查看了該網頁,並表示如果遵循上述規則,我們可以讓Googlebot查看任何網頁的內容,這很好。我需要知道的是如何確保Googlebot可以繞過Devise身份驗證。 – Reza 2012-03-23 06:27:04

+0

爲了讓GoogleBot繞過Devise,首先編寫一個方法來驗證請求是來自真實的googlebot IP,可能會調用它'valid_robot?',然後在'application_controller.rb'中編寫一個名爲'custom_authenticate_user!'的方法。該方法將調用你的'valid_robot?'方法,並相應地返回true,或傳遞給Devise的'authenticate_user!'方法。最後,在您想讓漫畫插入的頁面的過濾器之前,將調用替換/添加到您的自定義身份驗證方法。見第二回答http://stackoverflow.com/questions/6034410/before-filter-with-devise – 2012-03-23 12:54:31

0

在我看來,要做到這一點最簡單的方法是檢測IP,然後模擬登錄,如果您已經創建了谷歌的機器人登錄。

如果您已經創建了該帳戶,則可以在默認操作中添加代碼,以便一旦達到該操作,就會自動登錄Google bot。

從廣義上講,

# ...... 
# ...... 
#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 2012-03-21 07:08:27

+1

您必須擁有比檢查IP地址更復雜的代碼;來自不同地址的多個抓取工具可以同時訪問您的內容,因此您可能會在後續請求中獲得不同的抓取工具實例或服務器。 Google提供的關於檢測真實GoogleBot的建議:http://support.google.com/webmasters/bin/answer.py?hl=zh_CN&answer=80553 – 2012-03-21 17:58:26