浏览器作为用户代理发送"Dalvik"是什么意思?

17

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)"

即使是一些奇怪的cookie,我们要么重置要么删除。

有没有办法进一步调试以获取更多信息并更好地查看此问题?

这个问题在旧的Android手机、iOS或Windows手机上不会出现。

**问题出现在安装有KitKat/JellyBean操作系统的高端Android手机上。


听起来好像有东西从System.getProperty()中提取了VM版本信息。不知道为什么它会将其发送到Web服务器,或者如果它正在运行KitKat,为什么会声称拥有Android 4.2.2。 - fadden
是的,这很奇怪,我们仍然没有找到任何解决方案吗? - Austin N
我也注意到一个奇怪的行为,当我启用 McAfee 杀毒软件 时,它会发送这个头文件,但是当我禁用它时,它不会发送。这只是一种假设,但并非完全正确...!!! @fadden - Austin N
非常奇怪,但是当我们禁用 McAfee 时它可以工作,我不确定这是如何发生的.....! - Austin N
你确定两者都是正常的网页请求吗?如果有些是从JavaScript调用的调用,它们可能会使用与浏览器本身不同的HTTP引擎(版本)。 - Bert Huijben
我在多个(约80个)同时对流媒体(8000)服务器进行获取时看到这些ID,主要来自菲律宾和中国的网络,因此IP会发生变化。它们似乎是一种轻量级DDoS攻击,客户端在服务器之前很快耗尽带宽。目前它们只是令人讨厌的,但在过去六个月中,我已经看到它们的频率急剧增加。 - Hugh Buntu
3个回答

14
我注意到了一种连续请求的用户代理的相似模式。在我的情况下,第一个请求(使用Mozilla用户代理)来自嵌入式Webview。所请求的URL是下载PDF文件。我发现Android Webview无法处理PDF内容类型,因此通过意图启动PDF查看器。但是,在启动此查看器之前,Android会对同一URL进行第二个请求。在第二个请求中,呈现了Dalvik用户代理。
这种两个请求的奇怪情况已经被讨论过了,请参见Is setDownloadListener onDownloadStart called after the webview already Gets the file?WebView - can't download file without requesting it twice?
在我的第一个请求中,来自Webview的用户代理如下:
Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Galaxy Nexus Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
第二个请求(我认为是来自Android操作系统而不是Webview)显示的用户代理如下:
Dalvik/1.6.0 (Linux; U; Android 4.2.2; Galaxy Nexus Build/JDQ39)

5
  • Dalvik是Android虚拟机,用于运行单个应用程序。
  • 您看到的是在Android中运行的浏览器的请求头(它运行在Dalvik内部)。
  • 因此有两个UA(用户代理)字符串,一个是浏览器的,另一个是它所在的虚拟机的。

1
Michael Levy在上面正确地解释了当一个应用程序将意图传递给另一个应用程序并且需要下载文件时,会触发此UA。在Android上,一个浏览器请求并不等于两个HTTP请求。 - ZiggyTheHamster

2
在过去的六个月中,我看到了在流媒体服务器上具有该配置文件的同时GET请求的快速增加,但几年前的数量要少得多。一开始很容易忽略它们。客户端会发送许多同时请求(通常我看到 60-80),然后似乎客户端的带宽不足;请求被阻塞,逐渐减少,然后重新出现。这种情况持续几分钟。如果从不同的IP和不同的Eyeball网络发起了多次此类攻击,则可能开始符合我的DDoS攻击定义。
因为来源位于眼球网络上,且IP地址会随时间而变(但攻击期间不会变),因此使用IP阻止的效果有限,并且需要将阻止的内容存放一段时间以使其不影响合法用户。
您观察到cookie没有以任何方式被观察到,这似乎证实了这些请求是恶意的可能性。
简而言之,回答您的问题,您可以阻止这些请求,特别是在我看来这些请求可能是恶意的(根据我的经验这些请求在不断增加)。当然,您可能会阻止合法请求。这取决于您自己。您还需要解决如何阻止它们,因为根据我的经验,它们大多来自Eyeball网络上的DHCP租用地址。
另请参见:可以安全地阻止Dalvik浏览器代理请求吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接