Браузер отправляет "Dalvik" как пользовательский агент
Браузеры Android отправляют Dalvik в качестве пользовательских агентов в заголовках запросов.
В настоящее время я работаю на мобильном сайте с простой страницей для входа, которая проверяет имя пользователя и пароль, а затем авторизует профиль пользователя.
Но когда я проверил заголовки запроса, я увидел что-то необычное, было два пользовательских агента с одного устройства.
Ниже приведены пользовательские агенты с того же устройства:
"Mozilla/5.0 (Linux; Android 4.1.2; C5303 Build/12.0.A.1.257) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36"
"Dalvik/1.6.0 (Linux; U; Android 4.2.2; C2004 Build/15.2.A.2.5)"
Даже что-то странное, куки, которые были инициализированы, мы либо сбрасываем, либо сбрасываем.
Есть ли способ, как я могу отладить это дальше для получения дополнительной информации и получить лучшее представление по этому вопросу?
Эта проблема не видна в старых телефонах Android или IOS или Windows Phone.
** Проблема, замеченная в мобильных телефонах класса Android с ОС KitKat/JellyBean
2 ответа
Я только что заметил аналогичную схему User-агентов для запросов "спина к спине". В моем случае первый запрос (с пользовательским агентом Mozilla) был от встроенного веб-просмотра. Запрашиваемый URL должен был загрузить файл PDF. Я обнаружил, что веб-представление Android не может обрабатывать тип содержимого PDF, поэтому оно запускает средство просмотра PDF через намерение. Однако перед запуском этой программы просмотра Android делает второй запрос на тот же URL. Во втором запросе представлен пользовательский агент Dalvik.
Странность двух запросов уже обсуждалась ранее, см. Вызывается ли setDownloadListener onDownloadStart после того, как webview уже получает файл? и WebView - невозможно загрузить файл, не запросив его дважды?,
В моем первом запросе из веб-просмотра я вижу пользовательский агент:
Mozilla / 5.0 (Linux; U; Android 4.2.2; en-us; Galaxy Nexus Build / JDQ39) AppleWebKit / 534.30 (KHTML, как Gecko) Версия /4.0 Mobile Safari/534.30
Второй запрос (который я предполагаю, от ОС Android, а не из веб-просмотра) показывает пользовательский агент:
Dalvik / 1.6.0 (Linux; U; Android 4.2.2; Galaxy Nexus Build / JDQ39)
- Dalvik - это виртуальная машина Android, в которой работают отдельные приложения.
- То, что вы видите, это заголовок запроса от браузера, работающего в Android (который работает в Dalvik).
- Следовательно, две строки UA (User Agent), одна для браузера, другая для виртуальной машины, в которой он работает.
За последние 6 месяцев я наблюдал быстро растущее число одновременных запросов GET с этим профилем на потоковых серверах, но на несколько лет назад с гораздо меньшим объемом. Поначалу их было легко игнорировать. Клиент перекачивает много одновременных запросов (я обычно вижу 60-80), а затем кажется, что у клиента заканчивается пропускная способность; запросы останавливаются, утихают, а затем снова появляются. Это продолжается несколько минут. Если бы несколько атак такого рода были запущены с разных IP-адресов в разных сетях Eyeball, в моей книге это началось бы как DDoS-атака.
Поскольку источники находятся в сетях с постоянным изменением IP-адресов (с течением времени, но не во время атаки), использование блокировки IP-адресов имеет ограниченную эффективность, а блокировки должны быть устаревшими, чтобы они не влияли на законных пользователей.
Ваше наблюдение о том, что файлы cookie никоим образом не наблюдаются, может повысить вероятность того, что это вредоносные запросы.
В заключение, чтобы просто ответить на ваш вопрос, да, вы можете заблокировать эти запросы, тем более что у вас есть доказательства того, что это могут быть вредоносные запросы (которые, по моему опыту, неуклонно росли с момента вашего сообщения). Конечно, вы можете блокировать законные запросы. Это ваш призыв. Вам также придется иметь дело с тем, как их заблокировать, поскольку, по моему опыту, они исходят в основном из арендованных DHCP-адресов в сетях на глазных яблоках.
См. Также: Можно ли безопасно блокировать запросы агента браузера Dalvik?