【问题标题】:HTML5 video/audio player on mobile Safari (iOS 7 & iOS 10) excludes cookies移动 Safari(iOS 7 和 iOS 10)上的 HTML5 视频/音频播放器不包括 cookie
【发布时间】:2013-10-13 10:50:08
【问题描述】:

我注意到 iOS 7 上的移动 Safari 上的 HTML5 视频/音频播放器 (AppleCoreMedia) 排除了所有 cookie,甚至包括第一方 cookie。甚至会话 cookie 都不包含在 HTTP 标头中。这使得在 iOS 7 上的移动 Safari 中播放视频剪辑时无法中继 cookie 授权。

在运行 iOS 6 时正确包含所有 cookie,但在 iOS 7 上,AppleCoreMedia 的 HTTP 标头中不包含任何 cookie。

其他人可以在 iOS 7 上确认这个问题吗?

重现的步骤是:

  1. 在网页上创建 cookie。
  2. 在 iOS 7 中使用移动版 Safari 在同一网页上播放 HTML5 视频剪辑。
  3. 检查 AppleCoreMedia 的服务器日志并查找 cookie。

2016-09-20 更新:iOS 10 (AppleCoreMedia) 中的视频播放器无法读取会话 cookie。视频播放器只能读取设置了过期日期的 cookie。

【问题讨论】:

  • 这个问题似乎跑题了,因为它是 iOS 错误报告,而不是编程问题。
  • 7.0.3 的客户遇到了问题。现在 7.0.4 继续存在问题。
  • 在 7.0.4 中仍然看到这个问题。有没有我可以评论/跟踪的公共问题?
  • @JordanEldredge 我已提交给 Apple 和 OpenRadar(这不是我在错误报告中最自豪的时刻,但是......):openradar.appspot.com/radar?id=5238098090786816
  • 这个问题似乎又回到了iOS10 :-(

标签: html cookies ios7 mobile-safari ios10


【解决方案1】:

我在 Safari 上遇到了类似的问题。我在 jquery 加载的 html 中使用了<audio> 标签。 Safari 在对音频源的请求中未包含 cookie,因此无法正确加载。但不知何故,在我用 CTRL+F5 刷新页面后它工作了 - 它发送了带有完全重新加载的 cookie...

我通过添加 crossorigin="use-credentials"... 解决了这个问题。

【讨论】:

    【解决方案2】:

    我听说 iOS 10.2 将包含此问题的修复程序

    【讨论】:

    • 我希望你的小道消息是对的!我看到 [en.wikipedia.org/wiki/IOS_version_history](10.2 Beta 3) 可用,但注释中没有错误修复列表。 Beta 版和稳定版之间通常需要多长时间?
    • 编辑:我从苹果的朋友那里听说稳定的 iOS 10.2 版本将于 2016 年 12 月中旬发布。
    • 不,还没有修复。还是有这个问题。
    【解决方案3】:

    对于 iOS10,如果您以 403 禁止响应,AppleCoreMedia 会以某种方式重试,但这次缺少 cookie。如果您有在会话 cookie 丢失时重定向到登录页面的代码,则视频将无法在 iOS 10 上播放。

    【讨论】:

    • 此修复了 iOS 错误。然而,我很想了解为什么 iOS 实现了这个功能。这显然不是一个错误。他们是故意的!但为什么呢?
    • Apple 似乎已经在 iOS 10.2 中修复了它
    • 在第二个请求中,我仍然缺少 cookie。在最新版本的 PS4 默认浏览器上(似乎有同样的问题)。 AppleWebKit/605.1.15 (KHTML, like Gecko) libhttp/6.20 (PlayStation 4)
    【解决方案4】:

    该错误在 iOS 7.1 中仍然存在

    显然 Apple 忽略了这个错误,我无法理解为什么它会影响这么多用户。

    我已经在遇到此问题的 iOS 7.1 设备上运行了一些测试,很明显该错误与隐私浏览功能有关。打开然后关闭隐私浏览可以解决设备上的问题。

    【讨论】:

      【解决方案5】:

      Apple 尚未解决此问题。我们不断收到来自运行 iOS 7.0.6 的用户的报告,称他们无法播放视频剪辑,因为标题中没有包含 cookie。

      对于许多用户来说,将 safari 转为私人模式,然后再恢复正常,并不能解决问题。

      我还注意到 Dropbox 在他们的博客中写道,由于视频播放器存在此类问题,他们已恢复使用 url 令牌身份验证。

      Apple 一直无视我们的错误报告,所以这个错误可能很长一段时间都不会修复。

      【讨论】:

        【解决方案6】:

        很遗憾,我仍然看到 iOS 7.0.4 存在问题。以下是否与您所看到的一致,或者这可能是另一种类型的问题?

        我的测试服务器在 Apache 上运行 Moodle,一位用户可以在 iOS 7.0.4 上使用两台 iPad 持续复制这一点。 is a Moodle thing 下方日志中的 HTTP 407。如您所见,cookie 没有随范围请求一起发送:

        access_log:

        xxx.yyy.zzz.227 - - [22/Nov/2013:23:11:18 +0000] "GET /pluginfile.php/21/mod_videofile/videos/0/trailer_test.mp4 HTTP/1.1" 200 3711807 "http://xyz.bitnamiapp.com/mod/videofile/view.php?id=2" "Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53"
        xxx.yyy.zzz.227 - - [22/Nov/2013:23:11:19 +0000] "GET /pluginfile.php/21/mod_videofile/videos/0/trailer_test.mp4 HTTP/1.1" 407 12818 "-" "AppleCoreMedia/1.0.0.11B554a (iPad; U; CPU OS 7_0_4 like Mac OS X; en_us)"
        ...
        

        取证日志:

        +Uo-kj38AAAEAAH0O5MEAAAAJ|GET /pluginfile.php/21/mod_videofile/videos/0/trailer_test.mp4 HTTP/1.1|Host:xyz.bitnamiapp.com|Referer:http%3a//xyz.bitnamiapp.com/mod/videofile/view.php?id=2|Accept-Encoding:gzip, deflate|Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8|Accept-Language:en-us|Cookie:MoodleSession=24gkspshgl8027k3l7p2cor631|Connection:keep-alive|DNT:1|User-Agent:Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53
        +Uo-kkH8AAAEAAB2cL4IAAAAA|GET /pluginfile.php/21/mod_videofile/videos/0/trailer_test.mp4 HTTP/1.1|Host:xyz.bitnamiapp.com|Range:bytes=0-1|X-Playback-Session-Id:DF1039A4-571B-4EB8-BFFB-EF07CD730CA2|Accept-Encoding:identity|Accept:*/*|Accept-Language:en-us|Connection:keep-alive|User-Agent:AppleCoreMedia/1.0.0.11B554a (iPad; U; CPU OS 7_0_4 like Mac OS X; en_us)
        -Uo-kj38AAAEAAH0O5MEAAAAJ
        -Uo-kkH8AAAEAAB2cL4IAAAAA
        ...
        

        【讨论】:

        • 你是对的!对于许多运行 iOS 7.0.4 的用户来说,这个 bug 似乎仍然存在
        • 如果我错了,请纠正我。我看到第二个请求没有观看视频所需的 moodle cookie。
        • @graffic 这里有些猜测,但我认为第一个请求可能是让浏览器获取媒体文件头或类似文件。日志说 3711807 字节,但我很确定它不会全部读取。缺少 cookie 的第二个请求似乎来自 iOS 视频播放器。由于未设置 cookie,Moodle 会回复 407 以尝试阻止更多传入的范围请求,而不是加载登录页面的部分内容一百次。这是你的意思还是我可能在某个地方得出了错误的结论?
        • 我的网站有消息:AppleCoreMedia 不发送 cookie。但我的一位伙伴发现将 iPad Safari 转为私人模式,然后恢复正常,为他修好了。去图吧。
        • 如果是这样,那么苹果应该很容易修复这个错误。请您的朋友和同事在bizify.me/test-if-your-ios-device-is-broken 上运行我的测试,如果他们无法正确播放视频,请他们来回切换“私人模式”。
        【解决方案7】:

        我在 iOS 7.0.3 上遇到了类似的 cookie 问题,但现在在 iOS 7.0.4 中已修复。让我们希望它保持这种状态。

        【讨论】:

        • 是的,看起来这个错误现在已经在 iOS 7.0.4 中修复了 :)
        • 我仍然看到 iOS 7.0.4 的问题(请参阅包含日志的“答案”)。
        • 是的。我错了。对于很多用户来说,这个错误仍然存​​在于 iOS 7.0.4 中。
        • 已确认,部分 7.0.4 客户存在错误
        【解决方案8】:

        我开发了一个简单的测试,您可以在其中检查您的 iOS 设备是否存在此错误。

        Read more about the test here!

        【讨论】:

          【解决方案9】:

          使用 iOS 7.0.2,我看到请求中包含 cookie。这是我的用户代理标题:

          User-Agent: AppleCoreMedia/1.0.0.11A501 (iPad; U; CPU OS 7_0_2 like Mac OS X; en_us)
          

          【讨论】:

          • 非常感谢 Shawn 确认此错误已在 AppleCoreMedia/1.0.0.11A501(iOS 7.0.2 中包含的视频播放器)中修复
          • 我确信这个错误存在于 AppleCoreMedia/1.0.0.11A465,iOS 7.0.0 附带的视频播放器,但我不知道这个错误是否在 iOS 7.0.1 中得到修复跨度>
          • 我现在有几个使用 iOS 7.0.2 的朋友访问我设置的网页来调查这个错误,我清楚地看到 cookie 在 AppleCoreMedia/1.0.0.11A501 中不起作用如果访问者使用的是 Safari。所以我有点困惑你Shawn写道cookie在AppleCoreMedia/1.0.0.11A501中工作。但我还发现,如果用户通过 uiwebview(例如通过 Facebook 应用程序)访问网站,cookie 在 AppleCoreMedia/1.0.0.11A501 中运行良好。也许这个问题与 Safari 中的 Nitro 引擎有关? uiwebview 中不使用 Nitro 引擎。
          • Kalle,我用 Safari 进行了测试,而不是 web 视图。然而,我的测试在一个方面有所不同:我使用的是 HTML5 音频流,而不是视频。没关系,但可能值得检查。如果这不能解释它,您会发布您的测试页面以便我可以尝试吗?
          • 我们在 7.0.3 中没有遇到任何 cookie,但 7.0.2 似乎可以工作。不确定这是错误还是安全问题。我们不得不求助于修改 URL 以传递会话信息的补丁,这是我们真的不喜欢做的事情,但是我们验证了会话中的媒体 URL,因此我们必须找出一些解决方法
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-14
          • 1970-01-01
          • 2016-05-13
          • 1970-01-01
          相关资源
          最近更新 更多