Como permitir a) Auth HTTP sem token CSRF + ssl ou b) requer token de CSRF com o Devise?
-
27-09-2019 - |
Pergunta
Eu tenho um aplicativo Rails 3 configurado com o registro do usuário usando o Devise em execução em um servidor. Estou permitindo que as pessoas fizessem login no servidor através do site e também permitindo que as pessoas criem contas e faça login usando um aplicativo para iPhone.
Quando as pessoas estão usando o aplicativo para iPhone, gostaria de apoiar essas duas ações:
a) Inscreva -se na conta sem CSRF (isso causa problemas de segurança)?
b) Faça login com o http authado por SSL
c) Quaisquer solicitações de postagem ao servidor após o login para serem protegidas com o HTTP Auth com SSL.
Quando o usuário está no site, quero exigir tokens CSRF em todas as ações (para que o usuário não digite o nome de usuário e a senha a cada vez).
Obrigado pela ajuda.
Solução
Você pode desativar seletivamente o token CSRF em um controlador ou métodos de ação individual.
class StatsController < ApplicationController
skip_before_filter :verify_authenticity_token
...
end
Na verdade, estou procurando fazer algo semelhante, vou usar o iPhone um nome de domínio diferente e desativar seletivamente o filtro: verify_authenticity_token com base em algumas condições. Isso é apenas para nos manter até que possamos colocar nossa implementação do OAuth2 em funcionamento.