我可以安全地阻止Dalvik浏览器代理请求吗?

时间:2016-07-06 11:34:12

标签: android browser dalvik

我注意到当Android-OS设备上的用户访问我的网站时,每个页面上不断发生两个请求。第一个是普通浏览器,第二个是“Dalvik”。例如:

“GET / HTTP / 1.1”200 2126“ - ”“Mozilla / 5.0(Linux; Android 5.0.2; SAMSUNG SM-G925F / G925FXXU1AOD8 Build / LRX22G)AppleWebKit / 537.36(KHTML,与Gecko一样)SamsungBrowser / 3.0 Chrome /38.0.2125.102 Mobile Safari / 537.36“1229 2802

“GET / HTTP / 1.1”200 2117“ - ”“Dalvik / 2.1.0(Linux; U; Android 5.0.2; SM-G925F Build / LRX22G)”546 8729

根据我对此的理解,第一个请求来自实际的浏览器,另一个来自运行浏览器的虚拟机(Dalvik)。问题是Dalvik请求不使用相同的cookie和/或POST数据,这会触发服务器端的错误。一个例子是当用户注册帐户时。普通浏览器通过POST数据发送,但Dalvik请求只对动作URL进行了GET。同样,如果用户登录,Dalvik将在基于权限的页面上尝试GET,这可能会将其重定向到其他位置,因为没有会话。

用户没有遇到任何实际问题(据我所知),但是,我们注意到错误记录的尝试。所以我的问题是:如果浏览器代理显示“Dalvik / 。*”,我可以安全地阻止所有访问尝试吗?是否会对用户产生任何不利影响?考虑到与Dalvik相关的请求实际上没有重新发布真实数据或进行会话,似乎不太可能。但希望有更多Android经验的人可以提供一些反馈,例如,我应该发布特定的HTTP标头/状态代码,例如“401 Unauthorized”或“400 Bad Request”?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

每当浏览器/ WebView无法呈现特定的服务器响应(可能是PDF或流服务器,或其他),然后触发操作系统打开另一个应用程序的意图时,就会发生这种情况。 VM(Dalvik)负责处理此路由,在此过程中,可以将文件下载到设备,以便另一个应用程序可以访问它(通常,应用程序不能访问彼此的文件,但是另一个应用程序需要该文件来呈现)它)。

至关重要的是,它会在启动意图之前下载文件,并且文件最终下载了两次:一次由浏览器确定它不知道如何处理,一次由Dalvik使其可以通过{ 1}}可能会或可能不会启动的应用程序的URL。

答案 1 :(得分:0)

这是三星手机的Linux外壳。我的操作系统被列为“Linux 3.4.0-7500527(Dalvik 2.1.0)”,它是三星Galaxy S5。你可以设置一个副本你的网站(甚至是最小的)获得501,也许?有了它,应该很容易找到。