2016-03-07 2 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, вы можете иметь надежное и текущее считывание и согласование UA через модули, такие как useragent.

npm install useragent --save 

Если ваша команда QA фактически тестирование функции и ваши бизнес-правила были написаны разумным и логичным человеком, вы могли бы просто использовать функцию обнаружения, как и остальные из нас. Вместо этого вы собираетесь заблокировать пользователей в 2016 году от использования вашего приложения/сайта, потому что наивный владелец проекта хочет поддерживать только браузеры, которым он удобен (sigh).

Редактировать: Если вы действительно хотите произвести впечатление на кого-то, вы можете написать функциональные тесты, которые фактически выполняются в браузере. Вы можете автоматизировать щелчок кнопок/ссылок, заполнять формы и записывать утверждения против побочных эффектов этих действий пользователя. Например, вы можете заполнить форму знака с недопустимыми учетными данными, нажать «Отправить» и ожидать появления сообщения об ошибке «Неверный вход». Selenium - очень популярный инструмент, но есть также бесплатные инструменты с открытым исходным кодом, такие как FuncUnit и другие, которые позволяют вам это делать. Затем вы можете использовать такие вещи, как browserstack, для запуска этих тестов в браузерах по вашему выбору. Существуют также бесплатные инструменты, такие как Testee, которые позволяют вам иметь компьютеры со всеми поддерживаемыми браузерами, чтобы вы могли запускать свои функциональные тесты в этих браузерах. Это работает как локально, так и в инструментах CI, таких как Travis.

отказ от ответственности: я работаю в компании, которая строит и обслуживает FuncUnit и Testee - инструменты бесплатны и с открытым исходным кодом, и это не попытка продвигать нашу компанию.

+0

не видите, как вы действительно можете предотвратить спуфинг – charlietfl

+1

Вы не можете, по крайней мере, не с сервера. Большую часть времени это роботы, которые обманывают, и часто раз они только наполовину обманывают, поэтому вы все еще можете сказать, что это бот. Я думаю, что такие библиотеки, как useragent, проверяют это, поскольку они содержат исчерпывающий список строк _real_ UA. Единственный способ по-настоящему бороться с спуфинг - это обнаружение функций на стороне клиента. –

+0

Итак, как статистические программы, такие как Google Analytics, с большой уверенностью знают, какой браузер, операционная система и устройство используются? – Stefan