2016-03-07 83 views
0

我們公司有一個業務規則,我們應該阻止我們的用戶從我們的QA團隊尚未完全測試的瀏覽器訪問我們的應用程序。這個業務規則是不可改變的,我們的用戶提前知道他們只能使用某些瀏覽器來使用我們的產品。執行瀏覽器檢測功能檢測(非用戶代理嗅探)

爲了實現該業務規則,我正在尋找一個網絡庫,如Modernizr,它使用功能檢測來檢測瀏覽器。 Modernizr是一個功能檢測庫,而不是瀏覽器檢測庫,他們說they won't add browser detection

是否有任何使用特徵檢測技術來驗證用戶代理字符串的庫?

我寧願不用用戶代理單獨嗅探。如果我想做用戶代理嗅探,我會使用Bowser之類的東西。

該解決方案預計不需要100%正確。解決方案只需要90%正確。

+0

你說得對,代理嗅探不是答案,儘管幾乎不可能創建你想要的東西,因爲有更多的瀏覽器比你想象的要多,有些在行爲方面確實是相同的(嘗試區分最新的Opera,Chrome和Brave之間的所有功能,它們都支持相同的javascript功能和CSS屬性)。想象一下收集這些數據和維護它所涉及的工作和數據,幾乎每週都會有新的發佈(Chrome/Firefox/Opera/Edge是常青樹,所以這些更新經常會發生) –

+1

我認爲你誤解了_why_UA嗅探是不鼓勵的。在你的情況下,你實際上需要UA檢測。 – Mathletics

+1

「預防」似乎是激進的 – charlietfl

回答

1

就你而言,你真的想要UA嗅探,因爲你的QA團隊正在測試Firefox,Internet Explorer和你的企業想要禁止其他瀏覽器。然而,你可能已經讀過UA嗅探的所有缺點,瀏覽器可以欺騙其他瀏覽器,難以維護最新的列表yadda yadda。非常感謝npm,您可以通過useragent等模塊獲得可靠的當前UA嗅探和對賬。

npm install useragent --save 

如果您的QA團隊實際測試功能和業務規則被寫了一個合理的邏輯的人,你可以簡單地使用功能檢測,像我們的休息。相反,你將在2016年阻止用戶使用你的應用/網站,因爲一個天真的項目所有者只想支持他/她熟悉的瀏覽器(嘆息)。

編輯:如果你真的想給人留下深刻的印象,你可以編寫實際在瀏覽器中執行的功能測試。您可以自動點擊按鈕/鏈接,填寫表格並針對這些用戶操作的副作用編寫斷言。例如,您可以使用無效憑證填寫登錄表單,單擊提交,並期望顯示「無效登錄」錯誤消息。 Selenium是一個非常流行的工具,但也有免費的開源工具,如FuncUnit和其他允許你這樣做的工具。然後你可以使用諸如browserstack之類的東西在你選擇的瀏覽器中運行這些測試。還有一些免費工具,如Testee,它們允許您在機器中安裝所有支持的瀏覽器,以便您可以在這些瀏覽器中啓動功能測試。這適用於本地或CI工具,如Travis。

免責聲明: - 的工具都是免費和開源,這是不提倡我們的公司的嘗試我爲建立和維護FuncUnit和測試對象的公司工作。

+0

看不到你怎麼能真正防止欺騙 – charlietfl

+1

你真的不能,至少不能從服務器。大多數情況下,機器人是惡搞的,而且往往只是一半惡搞,所以你仍然可以告訴它是一個機器人。我認爲像useragent這樣的庫檢查這個,因爲它們保留了_real_ UA字符串的詳盡列表。真正打擊欺騙的唯一方法是客戶端功能檢測。 –

+0

那麼Google Analytics等統計程序如何確切知道使用哪種瀏覽器,操作系統和設備呢? – Stefan