1

api_controller.rb に投稿するたびに、Rails アプリで CSRF 警告 (セッションのリセット) が表示されます。

私のアプリは、windows phone 8 の phonegap の iframe で実行され、私の application_controller には、この問題を解決するための p3p ヘッダーがあります。しかし、この場合はうまくいかないようです。そのp3pがそこにないように...?誰かがこれに遭遇しましたか?

class ApplicationController < ActionController::Base

protect_from_forgery
before_filter :header_fix

protected
  def header_fix
    headers['P3P'] = 'CP="ALL DSP COR CURa ADMa DEVa OUR IND COM NAV"'
  end
end




class Api::ApiController < ApplicationController
before_filter :login_required

skip_before_filter :detect_device
skip_before_filter :detect_browser
skip_before_filter :record_log

skip_before_filter :assign_packages
skip_before_filter :assign_daily_bonus

end


[2646 - 2013/04/05 13:04:23] (INFO) Started POST "/api/chests" for 60.50.19.249 at 2013-04-05 13:04:23 +0800
[2646 - 2013/04/05 13:04:23] (INFO) Processing by Api::ChestsController#create as */*
[2646 - 2013/04/05 13:04:23] (INFO)   Parameters: {"force_new"=>"true"}
[2646 - 2013/04/05 13:04:23] (WARN) WARNING: Can't verify CSRF token authenticity
[2646 - 2013/04/05 13:04:23] (INFO) User agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)
[2646 - 2013/04/05 13:04:23] (DEBUG)   User Load (4.5ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
[2646 - 2013/04/05 13:04:23] (DEBUG)   KeyPackage Load (1.2ms)  SELECT `packages`.* FROM `packages` WHERE `packages`.`type` IN ('KeyPackage') ORDER BY cost
[2646 - 2013/04/05 13:04:23] (DEBUG)   CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
[2646 - 2013/04/05 13:04:23] (DEBUG)   CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
[2646 - 2013/04/05 13:04:23] (WARN) Lost session [60.50.19.249] (/api/chests) - Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)
4

1 に答える 1

1

この gem は Ruby on Rails ( https://github.com/grosser/ie_iframe_cookies ) で機能します。問題を解決します。

私の p3p ヘッダーは有効で、ユーザーはログインできますが、IE10 がこれを行う理由がわかりません。

于 2013-04-05T06:19:12.913 に答える