gpt4 book ai didi

sinatra - 如何使用 Rack/保护在 Sinatra 中指定源白名单选项

转载 作者:行者123 更新时间:2023-12-03 14:49:09 25 4
gpt4 key购买 nike

我有一个网络应用程序,可以说 http://web.example.comhttp://api.example.com 发出 POST 请求. api 服务器正在运行最新版本的 Sinatra,并启用了 Rack 保护。我收到此错误“被 Rack::Protection::HttpOrigin 阻止的攻击”。

我可以做这样的事情:

set :protection, :except => [:http_origin]

但我觉得我只是忽略了实际问题。

我试图这样做:
use Rack::Protection::HttpOrigin, :origin_whitelist => ['http://web.example.com']

但我仍然收到警告。

请求没有被拒绝,但 Sinatra 清除了我的 session see this post我需要 session_id。

任何有关如何为 HttpOrigin 类指定 option_whitelist 的帮助或示例将不胜感激。

最佳答案

将您的选项作为散列传递给 set :protection :

set :protection, :origin_whitelist => ['http://web.example.com']

Sinatra 然后会将它们传递给 Rack::Protection设置时。

当你有 use Rack::Protection::HttpOrigin, :origin_whitelist => ['http://web.example.com'] 时,我怀疑它失败的原因是您仍然启用了保护,因此您最终会得到两个 HttpOrigin 实例。 .你可以试试
set :protection, :except => [:http_origin]
use Rack::Protection::HttpOrigin, :origin_whitelist => ['http://web.example.com']

(即,将您尝试过的两条线都放在一起),但我认为第一个解决方案更简洁。

关于sinatra - 如何使用 Rack/保护在 Sinatra 中指定源白名单选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14083808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com