【问题标题】:Can I safely block Dalvik browser agent requests?我可以安全地阻止 Dalvik 浏览器代理请求吗?
【发布时间】:2016-11-08 10:44:06
【问题描述】:

我注意到,当使用 Android 操作系统设备的用户访问我的网站时,每个页面上都会不断发生两个请求。第一个是普通浏览器,第二个来自“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, like Gecko) SamsungBrowser/3.0 Chrome /38.0.2125.102 移动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”?

任何帮助将不胜感激。

【问题讨论】:

  • 我在访问 8000 端口的流媒体服务器(所以总是 200 的)时看到了这个 ID 字符串,通常标识为 LG 和华为型号,并且大部分流量来自菲律宾和中国。我看到不止两个重复获取...我看到一直在发生,直到客户端似乎用完带宽:大约 80 次左右同时获取。尚未开始阻止,但正在监视并看到这些数量稳步增加。最终它将构成 DDoS 攻击。

标签: android browser dalvik


【解决方案1】:

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

至关重要的是,它会在启动意图之前下载文件,并且文件最终会下载两次:一次由浏览器确定它不知道如何处理它,一次由 Dalvik 发送,因此它可以通过 @987654321 @ URL 指向您可能会或可能不会启动的应用程序。

【讨论】:

    【解决方案2】:

    这是三星手机的 Linux shell。我的操作系统被列为“Linux 3.4.0-7500527 (Dalvik 2.1.0)”,它是三星 Galaxy S5。您能否设置一个您的网站的副本(即使是最小的)并获得 501,也许?有了它,应该很容易找出来。

    【讨论】:

    • 绝对不仅仅是三星手机。我在许多其他设备上都看到过。
    猜你喜欢
    • 1970-01-01
    • 2015-03-09
    • 2017-05-09
    • 2016-01-25
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多