15

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

所有 cookie 都正确包含在运行 iOS 6 上,但在 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。

4

9 回答 9

12

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

于 2016-10-13T08:00:36.713 回答
3

该错误在 iOS 7.1 中仍然存在

显然,Apple 忽略了这个错误,我不明白为什么它会影响这么多用户。

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

于 2014-03-11T13:10:14.850 回答
3

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

在此处阅读有关测试的更多信息!

于 2013-11-05T10:17:52.780 回答
2

不幸的是,我仍然看到 iOS 7.0.4 出现问题。以下是否与您所看到的一致,或者这可能是另一种类型的问题?

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

访问日志:

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
...
于 2013-11-23T07:02:24.363 回答
1

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

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

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

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

于 2014-03-06T09:19:01.653 回答
1

使用 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)
于 2013-10-08T21:46:48.140 回答
1

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

我通过添加crossorigin="use-credentials"......讨厌的问题来解决它。

于 2019-11-19T10:38:28.440 回答
1

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

于 2016-11-09T15:49:17.053 回答
0

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

于 2013-11-14T21:54:59.543 回答