Jep*_*epZ 8 mobile-browser html5-audio cookie-httponly
我尝试通过html5音频标签播放一些mp3文件.对于桌面而言,这非常适合(使用Chrome),但是当涉及到移动浏览器(也是Chrome(适用于Android))时,似乎存在一些困难:
我用一些密码保护了流,因此流媒体服务器需要找到一个特殊的身份验证cookie(spring security remember-me).但不知何故,移动浏览器在通过音频标签访问mp3流时不会发送此cookie.当我直接输入流URL到地址栏时,一切正常.
当我搜索我发现的丢失的cookie时,移动浏览器仍然发送一些cookie(例如JSESSIONID),但不是全部.进一步调查(使用PHP的快速PoC)显示移动浏览器似乎拒绝通过具有HttpOnly Flag设置的audio-tag发送cookie.所以我的问题是:
这是一个指定的行为,为什么移动和桌面版本(Chrome)之间存在差异,是否有一种方法可以控制客户端的行为?
Jep*_*epZ 10
通过深入研究我发现的HTTP包,Android浏览器不会请求mp3流本身,而是将其委托给stagefright(一些Android多媒体客户端).快速搜索显示,对于旧的Android版本(4.0之前),stagefright无法处理cookie:
我自己的测试证实了这一点 旧的stagefright(Android 2.3.x)根本不发送任何cookie,来自欧洲S3(android 4.1.2,stagefright 1.2)的stagefright只发送没有httpOnly标志的cookie.
所以我认为每个人都必须自己决定使用哪种解决方案:
注意:简单地禁用httpOnly的问题在于,您使整个应用程序容易受到cookie劫持者的攻击.另一种可能的解决方案是为流提供一个特殊的记忆cookie(没有httpOnly)和另一个启用了httpOnly的记忆cookie.
归档时间: |
|
查看次数: |
2166 次 |
最近记录: |