如何允许a)没有CSRF令牌+ SSL的SSL身份验证或b)需要带设计的CSRF令牌?

时间:2010-11-23 14:04:50

标签: iphone ruby-on-rails devise csrf

我使用在服务器上运行的设备配置了用户注册的Rails 3应用程序。我允许人们通过网站登录服务器,并允许人们使用Iphone应用程序创建帐户和登录。

当人们使用Iphone应用程序时,我想支持这两个行动:

a)注册没有CSRF的帐户(这是否会导致任何安全问题)?

b)使用SSL保护的http auth登录

c)登录后通过SSL使用http auth保护对服务器的任何POST请求。

当用户在网站上时,我想要在所有操作上要求CSRF令牌(这样用户每次都不会输入用户名和密码。)

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您可以选择性地禁用控制器或单个操作方法上的CSRF令牌。

class StatsController < ApplicationController
  skip_before_filter :verify_authenticity_token
  ...
end

我实际上想要做类似的事情,我会让iPhone使用不同的域名,并根据几个条件有选择地禁用:verify_authenticity_token过滤器。这只是为了阻止我们,直到我们能够启动并运行我们的OAUTH2实现。