ruby-on-rails – rails机架保护用法,错误“你需要在* Rack :: P
发布时间:2020-12-17 03:05:36 所属栏目:百科 来源:网络整理
导读:我试图使用gem rack-protection,我按照使用指南配置“config.ru”文件.当我尝试再次运行应用程序时,我得到了这个错误“你需要在Rack :: Protection :: SessionHijacking之前设置一个会话中间件”. # config.ru require 'rack/protection' use Rack::Protecti
我试图使用gem rack-protection,我按照使用指南配置“config.ru”文件.当我尝试再次运行应用程序时,我得到了这个错误“你需要在Rack :: Protection :: SessionHijacking之前设置一个会话中间件”.
# config.ru require 'rack/protection' use Rack::Protection run MyApp 通过回复代码: module YouApp class Application < Rails::Application config.middleware.use Rack::Protection::SessionHijacking 我把它放到我的application.rb中,仍然得到内部服务错误,你需要在Rack :: Protection :: SessionHijacking之前设置一个会话中间件 这是rake中间件的输出: use Rack::MiniProfiler use ActionDispatch::Static use Rack::Lock use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007f9482a28910> use Rack::Runtime use Rack::MethodOverride use ActionDispatch::RequestId use Rails::Rack::Logger use ActionDispatch::ShowExceptions use ActionDispatch::DebugExceptions use ActionDispatch::RemoteIp use ActionDispatch::Reloader use ActionDispatch::Callbacks use ActiveRecord::ConnectionAdapters::ConnectionManagement use ActiveRecord::QueryCache use ActionDispatch::Cookies use ActiveRecord::SessionStore use ActionDispatch::Flash use ActionDispatch::ParamsParser use ActionDispatch::Head use Rack::ConditionalGet use Rack::ETag use ActionDispatch::BestStandardsSupport use Warden::Manager use Rack::Protection::SessionHijacking use MetaRequest::Middlewares::MetaRequestHandler use MetaRequest::Middlewares::Headers use MetaRequest::Middlewares::AppRequestHandler use OmniAuth::Strategies::Twitter use OmniAuth::Strategies::Facebook run Myapp::Application.routes 感谢任何人可以帮助和感谢您的时间. 解决方法
第1步是从Rack :: Protection包中排除SessionHijacking中间件:
# config.ru require 'rack/protection' use Rack::Protection,:except => :session_hijacking ... run YourApp 这将解决问题 – 但我认为你真的想要这个反劫持功能: 步骤2.在Rails application.rb中添加中间件 module YouApp class Application < Rails::Application config.middleware.use Rack::Protection::SessionHijacking ... 通过这种方式,您可以在rails拥有会话中间件 – ActionDispatch :: Session :: CookieStore之后加载它. 您可以通过运行rake中间件来检查结果 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |