kel*_*smj 16 rack sinatra cors
我有一个网络应用程序,让我们说http://web.example.com向http://api.example.com发出POST请求.api服务器正在运行最新版本的Sinatra,并启用了机架保护.我收到这个错误'Rack :: Protection :: HttpOrigin'阻止了攻击.
我可以这样做:
set :protection, :except => [:http_origin]
Run Code Online (Sandbox Code Playgroud)
但我觉得我只是忽略了实际的问题.
我试过这样做:
use Rack::Protection::HttpOrigin, :origin_whitelist => ['http://web.example.com']
Run Code Online (Sandbox Code Playgroud)
但我仍然得到警告.
该请求不会被拒绝,但Sinatra清除我的会话看到这篇文章,我需要session_id.
任何有关如何为HttpOrigin类指定option_whitelist的帮助或示例都将不胜感激.
mat*_*att 21
将您的选项作为哈希传递给set :protection:
set :protection, :origin_whitelist => ['http://web.example.com']
Run Code Online (Sandbox Code Playgroud)
然后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']
Run Code Online (Sandbox Code Playgroud)
(即同时拥有线你试过在一起),但我认为第一种方法是清洁剂.
| 归档时间: |
|
| 查看次数: |
5046 次 |
| 最近记录: |