如果我点击链接,Heroku 上的 Sinatra 应用会以 Forbidden 响应
Sinatra app on Heroku responds with Forbidden if I follow links
我创建了一个 Sinatra 小应用程序并使用 Puma 运行 它。我已经将我的应用程序部署到 Heroku 并且一切正常,但是如果我跟随外部 link 到我的应用程序,我会得到响应 Forbidden
。这是从哪里来的?
该应用只定义了一种 HTTP 方法:
require 'sinatra'
get '/' do
headers 'Content-Type' => 'application/json'
body 'Hello World'
end
例如,在 https://contactsampleprovider.herokuapp.com/ 之后会得到 Forbidden
,但在浏览器中手动输入 URL 也可以正常工作。
如果我省略 headers
调用,一切都会按预期进行。
这是机架保护的一项功能,如果您将内容类型设置为 JSON,它似乎会自动启用。它可以通过
禁用
set :protection, :except => [:json_csrf]
如 Sinatra and Rack protection.
这个问题中的示例所述
我创建了一个 Sinatra 小应用程序并使用 Puma 运行 它。我已经将我的应用程序部署到 Heroku 并且一切正常,但是如果我跟随外部 link 到我的应用程序,我会得到响应 Forbidden
。这是从哪里来的?
该应用只定义了一种 HTTP 方法:
require 'sinatra'
get '/' do
headers 'Content-Type' => 'application/json'
body 'Hello World'
end
例如,在 https://contactsampleprovider.herokuapp.com/ 之后会得到 Forbidden
,但在浏览器中手动输入 URL 也可以正常工作。
如果我省略 headers
调用,一切都会按预期进行。
这是机架保护的一项功能,如果您将内容类型设置为 JSON,它似乎会自动启用。它可以通过
禁用set :protection, :except => [:json_csrf]
如 Sinatra and Rack protection.
这个问题中的示例所述