2017-10-16 67 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