Rails 陌生主机报错(baidu.com)
Rails strange host reported in error (baidu.com)
我有一个 rails 应用程序 运行 Apache 和 Passenger 以及虚拟主机(多个应用程序 运行 在同一台服务器上)
从 3 天前开始,我的日志中充满了奇怪的错误:
Missing template users/login, application/login with {:locale=>[:en], :formats=>["Accept: */*"], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
* "/home/deployer/rails_apps/vantano/releases/20160318190203/app/views"
------------------------------- Request:
* URL : http://www.baidu.com/
* HTTP Method: GET
* IP address : 222.186.21.107
* Parameters : {"controller"=>"users", "action"=>"login"}
* Timestamp : 2016-05-12 18:14:12 UTC
* Server : eemvantano
* Rails root : /home/deployer/rails_apps/vantano/releases/20160318190203
* Process: 25133
现在,有 views/users/login.erb.html,但奇怪的部分是 URL。我的网站不是百度。在日志中添加了 Env dump,更多奇怪的东西:
------------------------------- Environment:
* HTTP_ACCEPT : Accept: */*
* HTTP_HOST : www.baidu.com
* HTTP_PROXY_CONNECTION : Keep-Alive
* HTTP_REFERER : http://www.baidu.com/
* HTTP_USER_AGENT : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WebSaver; .NET CLR 2.0.50727)
* HTTP_VERSION : HTTP/1.1
* ORIGINAL_FULLPATH : /
* ORIGINAL_SCRIPT_NAME :
* PASSENGER_CONNECT_PASSWORD : [FILTERED]
* PATH_INFO : /
* QUERY_STRING :
* REMOTE_ADDR : 222.186.21.107
* REMOTE_PORT : 4362
* REQUEST_METHOD : GET
* REQUEST_URI : /
* ROUTES_37245440_SCRIPT_NAME :
* SCRIPT_NAME :
* SERVER_NAME : www.baidu.com
* SERVER_PORT : 80
* SERVER_PROTOCOL : HTTP/1.1
* SERVER_SOFTWARE : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.16 OpenSSL/1.0.1f Phusion_Passenger/5.0.27
为什么baidu列为HOST和服务器名?
首先,您的 Apache 配置可能设置为回退到客户端为 SERVER_NAME 提供的 HTTP_HOST(有关更多详细信息,请参阅 UseCanonicalName and this SO answer 上的文档)。因此,尽管是伪造的,但两者匹配的事实不是问题(除非您的代码依赖于该值)。
其次,这看起来像是有人为 baidu.com(中国非常流行的搜索引擎)配置了他们的 DNS 以指向您的服务器。很难说为什么...
我有一个 rails 应用程序 运行 Apache 和 Passenger 以及虚拟主机(多个应用程序 运行 在同一台服务器上)
从 3 天前开始,我的日志中充满了奇怪的错误:
Missing template users/login, application/login with {:locale=>[:en], :formats=>["Accept: */*"], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
* "/home/deployer/rails_apps/vantano/releases/20160318190203/app/views"
------------------------------- Request:
* URL : http://www.baidu.com/
* HTTP Method: GET
* IP address : 222.186.21.107
* Parameters : {"controller"=>"users", "action"=>"login"}
* Timestamp : 2016-05-12 18:14:12 UTC
* Server : eemvantano
* Rails root : /home/deployer/rails_apps/vantano/releases/20160318190203
* Process: 25133
现在,有 views/users/login.erb.html,但奇怪的部分是 URL。我的网站不是百度。在日志中添加了 Env dump,更多奇怪的东西:
------------------------------- Environment:
* HTTP_ACCEPT : Accept: */*
* HTTP_HOST : www.baidu.com
* HTTP_PROXY_CONNECTION : Keep-Alive
* HTTP_REFERER : http://www.baidu.com/
* HTTP_USER_AGENT : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WebSaver; .NET CLR 2.0.50727)
* HTTP_VERSION : HTTP/1.1
* ORIGINAL_FULLPATH : /
* ORIGINAL_SCRIPT_NAME :
* PASSENGER_CONNECT_PASSWORD : [FILTERED]
* PATH_INFO : /
* QUERY_STRING :
* REMOTE_ADDR : 222.186.21.107
* REMOTE_PORT : 4362
* REQUEST_METHOD : GET
* REQUEST_URI : /
* ROUTES_37245440_SCRIPT_NAME :
* SCRIPT_NAME :
* SERVER_NAME : www.baidu.com
* SERVER_PORT : 80
* SERVER_PROTOCOL : HTTP/1.1
* SERVER_SOFTWARE : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.16 OpenSSL/1.0.1f Phusion_Passenger/5.0.27
为什么baidu列为HOST和服务器名?
首先,您的 Apache 配置可能设置为回退到客户端为 SERVER_NAME 提供的 HTTP_HOST(有关更多详细信息,请参阅 UseCanonicalName and this SO answer 上的文档)。因此,尽管是伪造的,但两者匹配的事实不是问题(除非您的代码依赖于该值)。
其次,这看起来像是有人为 baidu.com(中国非常流行的搜索引擎)配置了他们的 DNS 以指向您的服务器。很难说为什么...