带有IFrames Chrome 63的Android Cordova应用程序无请求标题Cookie

use*_*571 14 cookies iframe android google-chrome cordova

自从Android 63上的Chrome 63发布以来,2017年12月6日,我遇到了我公司基于Cordova的Android应用程序的问题.此应用程序包含IFrame,允许用户从应用程序中导航我公司的部分电子商务网站.

IFrame中加载的页面之间的导航不再在请求标头中发送任何cookie信息.

存储在cookie中的诸如Session Ids之类的信息不会传递到下一页,这反过来会导致下一页开始一个全新的用户会话!

然而奇怪的是,在IFrame上的页面中执行的任何AJAX调用(例如,检索篮子中的项目数)和资产请求(css js,图像文件等)确实在请求头中发送cookie信息.这些标头中的会话ID在页面之间是相同的,表示会话持久性.

正在创建Cookie,我可以在公司域下的"应用程序"面板中使用Chrome开发人员工具时看到它们.他们只是没有被传递到下一页.

我在Android 7.1.1设备上遇到过这个问题.当我在此设备上停用Chrome应用时,应用中IFrame中的Cookie请求标头会再次正常工作,可能是Cordova Webview在禁用时不再使用Chrome?

有谁知道可能导致这个问题的原因?是否与Chrome 63中的SameSite cookie或严格的站点隔离更改或其他与安全相关的更改有关?

该问题与2016年10月修复的Chromium bug类似:https: //bugs.chromium.org/p/chromium/issues/detail?id = 634311

但是,Webview确实在Cordova库的SystemCookieManager类中启用了ThirdParty cookie(Cordova Android 6.4.0):

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    cookieManager.setAcceptThirdPartyCookies(webView, true);            
}
Run Code Online (Sandbox Code Playgroud)

如果我没有明确说明任何内容,请道歉.如果有人可以帮助解决这个问题,我很乐意提供更多信息.

Gre*_*idt 9

此错误已在Chromium Bug跟踪器中提交并解决.根据Chromium开发人员的说法,从App方面来看,我们无能为力.

  • 最新版本的Chrome/Android Webview(版本63.0.3239.111)已修复此错误.我们使用我们的应用程序遇到的问题已得到解决. (3认同)