标签: samsung-browser

这个源自Google的未知客户端在我们的PWA中触发JavaScript错误是什么?

我们正在运行渐进式网络应用程序,并为Chrome和三星互联网启用推送通知,并鼓励我们的用户将其添加到主屏幕.我们严格记录和监控浏览器异常,以保持高质量的服务.

自2018年5月22日以来,我们注意到令人费解的JavaScript异常的突然增加,这些异常源于对先前从未失败过的标准,功能检测到的Web API的调用.

例如,以下代码将产生以下错误,尽管"推"显然是每个Permissions.query()规范的有效值:

const permissionStatus = await navigator
  .permissions
  .query({ name: 'push', userVisibleOnly: true });
Run Code Online (Sandbox Code Playgroud)

TypeError: Failed to read the 'query' property from 'Permissions': The provided value 'push' is not a valid enum value of type PermissionName.

经过仔细检查,我们注意到所有这些错误都发生在脚本执行过程中,而不是我们实际客户的用户代理.相反,我们在用户访问后立即看到未知客户端查询我们的应用程序:

  1. 用户访问我们的PWA,未报告错误
  2. 用户使用"添加到主屏幕"(大多数时间),不报告错误
  3. 未知客户访问我们的PWA,报告错误.

此未知客户端执行带有特征模式的HTTP请求:

  • URL与用户访问的URL完全相同
  • 始发IP地址已分配给Google,Inc.(66.102.0.0/20或66.249.64.0/19范围)
  • 推荐人是" https://www.google.com/ "
  • 用户代理字符串以某种方式匹配用户:相同版本的Android,相同的设备构建,相同的浏览器,但不同的浏览器版本,始终从此列表:
    • Chrome/66.0.3359.126(5月22日→5月30日)
    • Chrome/66.0.3359.158(6月11日→6月25日)
    • SamsungBrowser/3.0 Chrome/38.0.2125.102(6月25日→6月27日)
    • SamsungBrowser/6.4 Chrome/56.0.2924.87(5月22日→5月30日,6月25日)
    • SamsungBrowser/7.0 Chrome/59.0.3071.125(5月22日→5月30日,6月25日)

更重要的是,这些请求只能以看似受控的方式间歇性地发生,如上面的日期和下图所示:

未知Google源客户端的请求频率

在大多数情况下,我们检测到"添加到主屏幕"的使用情况,这让我们想知道这是否可能是与WebAPK有关的实验.然而,这是无证的,因此非常令人费解.

什么是这个未知的谷歌客户端?

它的目的是什么?

开发人员应如何检测它们,以及应采取哪些措施?

2018年8月更新:如上所述的请求现在似乎已经完全消失了......但它们可能是我们现在看到的某种类似请求的某种原型.这些新类型的请求仍然来自Google服务器,并且似乎专门针对我们的PWA的Web Manifest,因此不再触发JavaScript错误.它们都带有明确后缀的Chrome/59 +用户代理字符串(via Google-Chrome-WebAPK).其他浏览器,如三星互联网,尚未被发现.

android google-chrome service-worker progressive-web-apps samsung-browser

27
推荐指数
1
解决办法
349
查看次数

三星互联网浏览器忽略Ajax请求上的set-cookie

登录后,我设置了一些cookie,它们可以在FF,Chrome,Edge等环境中使用。但是由于某些原因,Samsung Internet Browser似乎忽略了我的cookie。

我已经启用了cookie,并且它正在接受来自其他站点的cookie,但是我不知道为什么它不接受它们。我从服务器获取了此捕获:

HTTP/1.1 200 OK
Content-Type: application/json
Set-Cookie: token=e1c137y8WEZItXVWExXBWRyQl9mxgxEvEMG++F6pzwart%2FAO0lTSA3tL48oeHclD%2FLQMdXWhgXvefpGR3QGMqwMe8cg%3D; HttpOnly; SameSite=Strict; Path=/; Expires=Wed, 08 May 2019 07:03:43 GMT
Set-Cookie: email=%2FwGLVu+6Yv5fYpSyZwRE8TIi0MlZZ6WaN+OaKusCF6pEyQjomquJmWwqSgrcHg2dcBeMBU%2Foeg%3D%3D; HttpOnly; SameSite=Strict; Path=/; Expires=Wed, 08 May 2019 07:03:43 GMT
Set-Cookie: testing=TESTETSETESET; HttpOnly
Server: Rocket
Content-Length: 56
Date: Wed, 01 May 2019 07:03:43 GMT

{ ... }
Run Code Online (Sandbox Code Playgroud)

我尝试过更改HttpOnly,SameSite,安全和域设置,但到目前为止没有任何更改。

有任何想法吗?

三星互联网版本9.2.00.70

编辑:

似乎是因为从Ajax查询中设置了cookie。我将其更改为来自常规形式POST的响应,并且似乎已经奏效。更多挖掘...

cookies ajax http samsung-browser

5
推荐指数
1
解决办法
300
查看次数