2012-03-21 100 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