2012-03-21 9 views
1

GoogleBotが自分のウェブサイトにログインし、認証をバイパスさせようとしています。 ウェブサイトはその認証にdeviseを使用しています。私はgoogleのユーザー名を作成し、GoogleBotがそのユーザーに自動的にログインさせることを考えていました。Rails 3 - IPベースの認証を取得する

GoogleBotを識別する方法は、そのIPアドレスに基づいています。

IPアドレスのリストをユーザー名にリンクしてログインプロセスをバイパスする方法はありますか?

おかげで、

答えて

4

は単なる警告:Googleは、ログインせずにアクセスすることができない政策にはなりませんインデックス含有量を有​​しています。 ExpertExchangeのようなサイトで使用される「First Click Free」(http://googlewebmastercentral.blogspot.com/2008/10/first-click-free-for-web-search.htmlを参照)と呼ばれるこの制限を回避する特別なポリシーがあります。このポリシーに違反した場合、Googleはほとんどの検索からサイトを効果的に削除します。 Googleウェブマスターセンターは、このようなもののための良いリソースです。開始点としてhttp://support.google.com/webmasters/bin/answer.py?hl=en&answer=40349を参照してください。

+0

ありがとうございます。私はそのページをチェックし、上記のルールに従えばgooglebotにページの内容を見せてもらえるといいですが、それは問題ありません。私が知る必要があるのは、googlebotがDevise認証をバイパスできるようにする方法です。 – Reza

+0

GoogleBotがDeviseをバイパスできるようにするには、まず、本物のgooglebot IPからのリクエストであることを確認するメソッドを書いてください。おそらく 'valid_robot? 'と呼ばれ、' custom_authenticate_user! 'のようなメソッドを' application_controller.rb'そのメソッドは 'valid_robot?'メソッドを呼び出し、それに応じてtrueを返すか、Deviseの 'authenticate_user!'メソッドに渡します。最後に、ボットを入れたいページのフィルタ前に、カスタム認証メソッドの呼び出しを置き換えたり追加したりします。 http://stackoverflow.com/questions/6034410/before-filter-with-deviseへの2番目の回答を参照してください。 –

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アドレスをチェックするだけではなく、より洗練されたコードを用意する必要があります。異なるアドレスの複数のクローラーが同じ時間にコンテンツにアクセスする可能性があるため、後続の要求で異なるクローラー・インスタンスまたはサーバーを取得する可能性があります。本物のGoogleBotを検出するためのGoogleの提案は次のとおりです。http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=80553 –

関連する問題