前段时间做的oneplayer,采用的是onedrive 的分享链接的资源盗用。
原理是共用分享页面的 cookie,用来实现盗链播放和下载的功能。但经过几次测试,在苹果的最新safari浏览器中不能生效。
我估计是 safari 禁用了网页调用第三方cookie 的功能,互联网一直讨论网页中用于追踪用户身份信息的滥用,所以浏览器标准就准备干掉跨域名的资源读写cookie,业界叫第三方cookie。
本身这个事没什么,就是大家一起制定标准,说好怎样怎样就行了,你自己网站的数据只能你自己网站使用。如果标准实施了,是很多网站代码功能需要调整,以前可以用别的网站的代码的功能,现在需要改成自己实现一些功能才行。
这个保护隐私的改动,实际上影响面还是挺大的,一个是历史代码会遇到问题,再一个是很多依赖这种大家相互应用代码而让各自维护各自功能的商业模式遭到挑战。以前是我公开服务,你想用就可以自己把我代码嵌入你的代码就行了,我还能远程维护和升级你引用的代码,只要不出bug,大家相安无事。
唯一的隐患就是你引入我,我就可以自由在你的网站上施工,网页除了能看到的内容以外,还可以在你看不到的地方随意施工,不影响你使用,但我也可以安装个摄像头,你的用户在这个空间里做什么,我都可以记录下来。
下次我再遇到他,我就认识他了。
你在网站上看到的各种广告联盟推广能认识你就基于这个技术。也就是大家都可以按照自己规则认识你。
如果你访问的网站都接入了某一个服务商,那么理论上在所有用到这个服务商的网站,这个服务商的代码都认识你。如果他们再把你的身份信息共享给行业联盟,那么联盟的人都可以认识你了。
这就是客户公库,你在这家拒绝了推广,其他家还可以再给你推广试试,万一成功呢。
依靠这套商业模式赚钱最多的就是Google了,他的搜索广告和网站广告联盟,基本上覆盖大部分用户访问的大中小型网站。然后他又掌控了用户最多的浏览器Chrome和使用量最多的浏览器js v8渲染引擎。
所以这个事对谷歌来说推广起来就是比较麻烦的事情了,也就是说这个标准一应用,等于革了自己半条命。所以Google 自己的Chrome不会贸然启用这个标准。
但苹果没什么顾虑,人家不靠这个吃饭,自己先实施了这个标准,也算给行业试水。用上反而可以将谷歌一军。可以在安卓和ios的比较上拿保护隐私说事更理直气壮。最近谷歌一直在涉及反垄断和用户隐私滥用调查,已经答应要尽快实施默认禁用第三方cookie 的标准应用了。
在以后做网页应用的时候,涉及到跨域cookie的时候都要注意了,要开发兼容safari 的版本才行。苹果公司的应用开发和浏览器在用户隐私,防劫持,推广http改成加密https的时候更果断,更强制。
只是需要保护好那些不在更新的互联网网站的正常访问才好,记得有用户发起过保卫远古互联网信息平台的呼吁,防止因为互联网软件和标准的迭代而让那些互联网不在更新的历史网页和存档都消失在历史中。
互联的沉睡资源同样具有巨大价值,如果不断的消失的话,以后信息会越来越新,但如果存档网页都消失的话,也会是一个很大的损失。
那如何解决跨站跟踪带来的问题?
我理解一种方法是检测到用户使用不正常时提醒用户手动关掉跨站追踪以后再使用网站。
另外一种方法是允许代码使用第一方cookie,在用户访问时通过写入第一方cookie和读取第一方cookie的方式来进行数据存取。可以使用js代码,也可以使用浏览器的站点存储来代替cookie记录。参数什么的都放到url或者请求的数据里提交。
这个允许站点使用第一方cookie的方式在谷歌联盟的时候也有提示。