CSRF
all
JSON GET APIs are vulnerable to being embedded as JavaScript while the Array prototype has been patched to track data. Checks the referrer even on GET requests if the content type is JSON.
# File lib/rack/protection/json_csrf.rb, line 16 def call(env) status, headers, body = app.call(env) if headers['Content-Type'].to_s.split(';', 2).first =~ %r^\s*application\/json\s*$/ if origin(env).nil? and referrer(env) != Request.new(env).host result = react(env) warn env, "attack prevented by #{self.class}" end end result or [status, headers, body] end