2017-10-16 53 views
-1

我只想知道这是否可能。如果是这样,怎么样?Rails 5禁止访问Internet Explorer?

我想阻止不同浏览器的用户,如IE或Vivaldi。这将如何完成?通过Javascript?如果是这样,它可以被欺骗吗?或者服务器端配置是否可以阻止访问?

+0

您可以检查在您的控制器中的用户代理,并根据此提供差异响应。 (这里是解析UA的一个Gem:https://github.com/gshutler/useragent)。浏览器可以改变他们的用户代理(例如查看Chrome开发人员工具),因此可能会被欺骗。 – hoffm

回答

0

如果您想阻止传入的请求,最好在机架级别而不是控制器级别执行。

你如果你想先进的功能,编写自己的中间件这样的(未测试)

module Rack 
    class BrowserBlocker 
    def initialize(app) 
     @app = app 
    end 

    def call(env) 
     useragent = UserAgent.new(env["HTTP_USER_AGENT"].to_s) 
     if (useragent.name == :ie) 
     #block action here 
     #redirect or show a page 
     else 
     #pass action here, usually @app.call(env) 
     end 
    end 
    end 
end 

,使用一些中间件像Rack::Attack,看看blocklists