
我知道CSRF保护只能用于常规表单提交(即Content-Type = application / x-www-form-urlencoded),所以如果我提交JSON或XML数据,我会没事的.不幸的是,OAuth目前仅限于application / x-www-form-urlencoded请求.有一个draft spec that extends OAuth to non-form-urlencoded data,但这对我现在没有帮助.
我看到它的方式,我有以下选择:
>将数据作为JsON发送,知道它不会成为OAuth签名的一部分,因此会受到中间人攻击.显然不是一个有吸引力的解决方案.
>创建内部委托给常规 *** 作的特殊Rails *** 作(例如UsersController#update_oauth)(例如UsersController #update).然后将这些从伪造保护中排除(protect_from_forgery:only => [:update]).这应该是可行的,并且对于一个或两个动作可能是可接受的,但显然这将是一个非常混乱的解决方案.
>覆盖Rails CSRF保护以忽略OAuth请求.我没有试过这个,但似乎应该可以更改其中一个钩子(可能是verify_authenticity_token过滤器)以考虑OAuth请求是否成功.
有没有人遇到这个?有什么建议?或者我可能遗漏了一些基本的东西?
解决方法 我会回答我自己的问题. 总结以上是内存溢出为你收集整理的ruby-on-rails – Rails,OAuth和CSRF保护全部内容,希望文章能够帮你解决ruby-on-rails – Rails,OAuth和CSRF保护所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)