加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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中间件来检查结果

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读