Необходимо запретить авторизацию для пользователей мобильных телефонов. Через HTTP_USER_AGENT (пользуюсь скриптом, который предоставляет сервис detectmobilebrowsers) обычная галочка в мобильном хроме "Полная версия" уже ломает такую простенькую защиту. Поиск в интернете в основном говорит проверять именно user_agent, но может мне что-нибудь вы подскажете? Ведь обойти такую проверку не составляет никакого труда.
Запретить вряд ли получится, легче просто отличить, хотя бы по IP. А уж автоматизировать анализ логов гораздо более тривиальная задача
Совсем крайний случай: Написать отдельный клиент для сайта. Кто зашел не с клиента - не пускать.
Ну и как мы будем анализ этого автоматизировать? допустим, работник автоматизировался в 8:45 с одного ip, а в 10:15 с другого - надо наказать. Автоматизировался просто в 9:15 - тоже наказать. А в 8:45 - не надо. Но варианты бывают разные, какой алгоритм задать? какие условия для штрафа Вы предлагаете задать, я не очень понимаю просто
Как вариант: Проверять время авторизаций пользователя с начала суток. Если до начала рабочего дня он не авторизовался с корпоративного IP, проверить наличие разрешения работы из дома в этот день. Если разрешения нет - штрафовать.
Ну и мы остановились на этом варианте. Теперь вопрос - как получить ip адрес сети?) Я так понимаю, можно получить адрес хоста, но он не будет являться адресом сети организации
У сети не может быть один IP адрес, у нее диапазон. Если сайт находится в сети, то можно просто настроить вход по локалке. Если же сайт на внешнем хостинге, то уже к настройкам прокси обращаться. Прозрачный, насколько я помню, выдает внутренний IP сайту.
В случае опытного пользователя никак, варианта с HTTP_USER_AGENT вполне достаточно для большинства пользователей. Вообще не понятно зачем так настойчиво им запрещать? )) Ну хочется им с мобильника полную версию, так пусть радуются - зачем палки в колеса вставлять?
Это внутренняя CRM, по авторизации фиксируются опоздания, а если человек видит, что он опаздывает, он просто успевает заходить с мобильного ещё до начала рабочего дня. Итог - человек опоздал, но штраф не получил)
Matveika: тогда.. Хьюстон, у нас проблемы)) последняя и несколько бредовая идея это геотаргеттинг - мобильные будут выделяться, но не факт что кто-то не юзаюет инет через мобильный свисток
> Некоторые работают из дома, поэтому ограничивать доступ по ip нельзя
Так пишите в лог, с какого IP авторизация.
А уж кто должен быть в это время на работе - это-то вы должны знать?
Ну, возможен такой вариант, если не будет больше идей) но хотелось бы чего-то более элегантного)
Каждый день отмечать, кто завтра работает из дома, а кто из офиса - не очень удобно. Ну и проверять логи при подсчёте зп тоже неудобно, это начальник и сейчас делает.
Matveika: А что мешает этим людям зайти из дома, а потом уже поехать на работу?
На мой взгляд политика штрафов за опоздания в корне не верная, если конечно у вас не полностью автоматизированный производственный процесс, который жестко завязан на включение в работу людей в определенное время.
Штрафовать надо за неэффективную работу, а пришёл человек на 5 или даже 30 минут позже - это его личная проблема, может на это же время вечером задержаться, может не сходить на перерыв и т.д.
Политика штрафов придумана не мной, и изменять её не собираются. Штрафы не только за опоздание, но и за простой в системе, за попоздание с обеда и тд. Так что тут ничего не поделать) Нужо лишь попытаться решить задачу, поставленную руководством.
Про зайти с дома - да, ничто не мешает) Запретить вход с телефона это для начала, чтобы начать потихонку людей ограничивать. Вообще полностью пытаемся продумать всю систему
Я зашла со своего телефона на сайт detectmobilebrowsers.com (сервис выводит, что передаётся в параметре юзерагент и по нему проверяет, какое это устройство, с помощью регулярных выражений). При этом он пишет, что моё устройство андроид (молодец, определил). Если я нажимаю "Полная версия" в браузере, этот же юзерагент передает уже "Linux x86_64". Браузеры без проблем подделывают этот параметр, вот в чём проблема