我使用在服务器上运行的设备配置了用户注册的Rails 3应用程序。我允许人们通过网站登录服务器,并允许人们使用Iphone应用程序创建帐户和登录。
当人们使用Iphone应用程序时,我想支持这两个行动:
a)注册没有CSRF的帐户(这是否会导致任何安全问题)?
b)使用SSL保护的http auth登录
c)登录后通过SSL使用http auth保护对服务器的任何POST请求。
当用户在网站上时,我想要在所有操作上要求CSRF令牌(这样用户每次都不会输入用户名和密码。)
感谢您的帮助。
答案 0 :(得分:3)
您可以选择性地禁用控制器或单个操作方法上的CSRF令牌。
class StatsController < ApplicationController
skip_before_filter :verify_authenticity_token
...
end
我实际上想要做类似的事情,我会让iPhone使用不同的域名,并根据几个条件有选择地禁用:verify_authenticity_token过滤器。这只是为了阻止我们,直到我们能够启动并运行我们的OAUTH2实现。