Sinatra- und Rack-Schutz-Einstellung

Ich verwende Sinatra und CORS, um einen Datei-Upload auf Domain A (hefty.burger.com) zu akzeptieren. Domain B (fizzbuzz.com) hat ein Formular, das eine Datei auf eine Route auf A hochlädt.

Ich habe eine Optionsroute und eine Postroute mit dem Namen "/ uploader".

<code>options '/uploader' do
  headers 'Access-Control-Allow-Origin' => 'http://fizz.buzz.com',
  'Access-Control-Allow-Methods' => 'POST'
  200
end 

post '/uploader' do
  ... 
  content_type :json
  [{:mary => 'little lamb'}].to_json
end
</code>

Die Optionen werden zuerst getroffen ... und es funktioniert ... dann wird der Beitrag getroffen und gibt eine 403 zurück.

Wenn ich den Schutz deaktiviere, funktioniert der Beitrag ... Welche Art von Schutz muss ich aus einer Liste ausschließen, um den Schutz aufrechtzuerhalten, aber diese Beiträge zulassen?

Ich wurde erst kürzlich von dem neuen Rack-Schutz verbrannt, der auf Heroku zuschlug und mir etwas Kummer bereitete. Hat jemand einen guten Hinweis, was hier zu tun ist? Der Grund, warum ich das sage, ist, dass ich plötzlich Protokolleinträge mit Warnungen zu Problemen bei der Sitzungsentführung sehe (mit ziemlicher Sicherheit, weil nicht mehr als 1 Dyno für die App ausgeführt wird). Ich sehe rack-protection (1.2.0) in meiner Gemfile.lock, obwohl ich nie danach gefragt habe ... etwas in meinem Manifest fordert es an, also wird es geladen, aber nichts in meiner Sinatra App versucht es auch nur zu fordern oder richten Sie es ein.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage