aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabriel Jaldon <gjaldon85@gmail.com>2014-12-10 23:21:01 +0800
committerGreg Molnar <molnargerg@gmail.com>2018-05-27 16:17:53 +0200
commitd3a2c53955f28e0f3dfe0403ef691b903496e957 (patch)
treef87e894796b322fe05b25ef831ad7cec5c359105
parent17bf62033edd4f0934c9f4a9e0c7a5f0f765975b (diff)
downloadrails-d3a2c53955f28e0f3dfe0403ef691b903496e957.tar.gz
rails-d3a2c53955f28e0f3dfe0403ef691b903496e957.tar.bz2
rails-d3a2c53955f28e0f3dfe0403ef691b903496e957.zip
Include application/javascript when checking content_type
-rw-r--r--actionpack/lib/action_controller/metal/request_forgery_protection.rb2
-rw-r--r--actionpack/test/controller/request_forgery_protection_test.rb5
2 files changed, 6 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/request_forgery_protection.rb b/actionpack/lib/action_controller/metal/request_forgery_protection.rb
index 953f3c47ed..df15c45470 100644
--- a/actionpack/lib/action_controller/metal/request_forgery_protection.rb
+++ b/actionpack/lib/action_controller/metal/request_forgery_protection.rb
@@ -275,7 +275,7 @@ module ActionController #:nodoc:
# Check for cross-origin JavaScript responses.
def non_xhr_javascript_response? # :doc:
- content_type =~ %r(\Atext/javascript) && !request.xhr?
+ content_type =~ %r(\A(text|application)/javascript) && !request.xhr?
end
AUTHENTICITY_TOKEN_LENGTH = 32
diff --git a/actionpack/test/controller/request_forgery_protection_test.rb b/actionpack/test/controller/request_forgery_protection_test.rb
index 7a02c27c99..ea94a3e048 100644
--- a/actionpack/test/controller/request_forgery_protection_test.rb
+++ b/actionpack/test/controller/request_forgery_protection_test.rb
@@ -521,6 +521,11 @@ module RequestForgeryProtectionTests
get :negotiate_same_origin
end
+ assert_cross_origin_blocked do
+ @request.accept = "application/javascript"
+ get :negotiate_same_origin
+ end
+
assert_cross_origin_not_blocked { get :same_origin_js, xhr: true }
assert_cross_origin_not_blocked { get :same_origin_js, xhr: true, format: "js" }
assert_cross_origin_not_blocked do