Рельсы и ip-спуфинг - PullRequest
       4

Рельсы и ip-спуфинг

1 голос
/ 09 ноября 2010

У меня небольшое приложение на Rails 2.3.2, обслуживаемое с помощью nginx + thin (127). ОС FreeBSD 7.1, БД - Posgresql.

Twise на этой неделе мое приложение падает. В журнале я получаю что-то вроде (~ 2-50 запросов в секунду):

/!\ FAILSAFE /!\  Mon Oct 04 20:13:55 +0300 2010
 Status: 500 Internal Server Error
  bad content body
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb:311:in `parse_multipart'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/request.rb:125:in `POST'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/request.rb:428:in `request_parameters'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/request.rb:381:in `parameters'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:1279:in `assign_shortcuts'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:518:in `process_without_filters'

Или:

/! \ FAILSAFE /! \ Вт. 09 ноября 09:24:39 +0200 2010 Статус: 500 Внутренняя ошибка сервера IP подделка атаки ?! HTTP_CLIENT_IP = "XX.XX.XX.XX" HTTP_X_FORWARDED_FOR = "192.168.XX.XX, YY.YY.YY.YY"

/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/request.rb:229:in `remote_ip'
/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:1372:in `request_origin'
/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:1304:in `log_processing_for_request_id'
/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:1296:in `log_processing'
/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:522:in `process_without_filters'

После того, как эта система установит максимальное количество открытых файлов (я полагаю, это будет открыто сессиями postgesql), postgresql не сможет установить новое соединение и падение приложения.

Любое предложение, как я могу защитить свой ss pp в этой ситуации?

1 Ответ

6 голосов
/ 09 декабря 2010

Цитируется из rails 2.3. Примечания к выпуску:

Тот факт, что Rails проверяет подделку IP-адресов, может создавать неудобства для сайтов, интенсивно работающих с мобильными телефонами, поскольку их прокси-серверы обычно не работают правильно.Если это вы, теперь вы можете установить ActionController :: Base.ip_spoofing_check = false, чтобы полностью отключить проверку.

...