Как разрешить либо a) HTTP-аутентификацию без CSRF-токена + SSL, либо b) требовать CSRF-токен с devise? - PullRequest
3 голосов
/ 23 ноября 2010

У меня есть приложение Rails 3, настроенное для регистрации пользователей с использованием устройства, работающего на сервере. Я разрешаю людям входить на сервер через веб-сайт, а также разрешать людям создавать учетные записи и входить в систему с помощью приложения Iphone.

Когда люди используют приложение Iphone, я бы хотел поддержать эти два действия:

a) Зарегистрироваться для учетной записи без CSRF (это вызывает проблемы с безопасностью)?

б) Авторизация с использованием http авторизации, защищенной с помощью SSL

в) Любые POST-запросы к серверу после входа в систему должны быть защищены с помощью http auth и SSL.

Когда пользователь находится на сайте, я хочу, чтобы токены CSRF требовались для всех действий (чтобы пользователь не вводил имя пользователя и пароль каждый раз).

Спасибо за вашу помощь.

1 Ответ

3 голосов
/ 31 января 2011

Вы можете выборочно отключить токен CSRF на контроллере или отдельные методы действий.

class StatsController < ApplicationController
  skip_before_filter :verify_authenticity_token
  ...
end

Я на самом деле собираюсь сделать что-то подобное, я заставлю iPhone использовать другое доменное имя и выборочно отключу фильтр: verify_authenticity_token на основе пары условий. Это только удерживает нас, пока мы не сможем запустить и запустить нашу реализацию OAUTH2.

...