跨浏览器存储,你们有什么好的方案? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
simonguo
V2EX    Javascript

跨浏览器存储,你们有什么好的方案?

  •  
  •   simonguo 2016-09-05 15:08:43 +08:00 5412 次点击
    这是一个创建于 3349 天前的主题,其中的信息可能已经有所发展或是发生改变。

    意思就是说,我在 IE 上存储的的值可以在 chrome 等其他浏览器读取的,各个浏览器之间可以共享存储, 之前试过一种方式是 Flash 的 SharedObject,但是 chrome 对 Flash 插件的机制不一样,所有 chrome 不能和其他浏览器共享存储, 你们有其他什么解决方案吗?

    32 条回复    2017-08-23 13:55:39 +08:00
    codehz
        1
    codehz  
       2016-09-05 15:23:23 +08:00 via Android
    给客户机安装一个插件,让所有浏览器都加载,然后就好了。。。。。现在浏览器都是沙箱模式,也就插件可以绕过沙箱访问数据了
    ranran
        2
    ranran  
       2016-09-05 15:34:57 +08:00
    0day
    FrankFang128
        3
    FrankFang128  
       2016-09-05 15:43:08 +08:00 via Android
    存到数据库。。
    lijianying10
        4
    lijianying10  
       2016-09-05 15:46:02 +08:00
    个人觉得工程量比较小的方法有两种:
    1. 写个后端,然后用 ajax 来调数据出来。
    2. 如果客户机有网络,就用 firebase 。
    loading
        5
    loading  
       2016-09-05 15:48:51 +08:00 via Android
    广告联盟都还没使用的技术……
    qhxin
        6
    qhxin  
       2016-09-05 15:56:33 +08:00
    applet
    simonguo
        7
    simonguo  
    OP
       2016-09-05 23:11:10 +08:00
    @FrankFang128 @lijianying10 不存服务端,需要存在浏览器端,因为需要解决的问题就是像 @loading 说的一样,广告联盟还没使用的技术,需要存储浏览器用户访问者的唯一 ID ,当然 applet 和 浏览器器插件更改不可能,存在兼容性问题。 我也觉得暂时没有什么技术可以解决这个问题。
    alcarl
        8
    alcarl  
       2016-09-06 00:10:29 +08:00
    window.localStorage
    qq286735628
        9
    qq286735628  
       2016-09-06 00:53:06 +08:00
    如果是一个开放圈子,现有浏览器技术,是没有办法实现跨浏览器获取 设备唯一识别 (我这里称为 DeviceID )。
    如果是一个封闭的圈子,用 UserID 比 DeviceID 更有效。

    有人提到插件和客户端等方式 ,如果你的追踪对象允许安装这些客户端,我相信登录操作的成本比安装客户端更底。
    SoloCompany
        10
    SoloCompany  
       2016-09-06 03:04:34 +08:00
    真会异想天开
    你连存服务器都无可能,还想存客户端

    最理想解决方案,开发一个操作系统,把 Microsoft Windows 干下去
    simonguo
        11
    simonguo  
    OP
       2016-09-06 08:32:29 +08:00 via iPhone
    @SoloCompany 不是异想天开,我现在在 IE 存储一个值,你可以认为这个值为一个 cookie ,我可以在 firefox 上取到这个值。
    EXDestroyer
        12
    EXDestroyer  
       2016-09-06 10:45:58 +08:00
    @simonguo 这不是异想天开,但是就是搞笑的需求
    你在 IE 存一个值和在 chrome 在 QQ 在 UC 在 FF 等的情况都不一样,浏览器要是能给你跨平台读取数据那就是漏洞了
    做这种东西就应该做一个 PC 客户端
    simonguo
        13
    simonguo  
    OP
       2016-09-06 11:07:52 +08:00
    @EXDestroyer 你做一个 PC 客户端也只能解决一个用了你 PC 的用户的问题,互联网上这么多的用户各个终端不一样,各个浏览器不一样,各种兼容不兼容,考虑的情况非常很多。 这也不是一个搞笑的需求,这个是业务场景就确实存在的需求,而且在广告与网站监测等领域也确实在生产环境中实践过,只是现在还存在兼容和效率问题,不是非要让你通过浏览器这个途径出发去解决这个问题。
    qile1
        14
    qile1  
       2016-09-06 11:15:00 +08:00 via Android
    可以让浏览器开发一个功能,存在一个任何用户都可以读的一个公共地方,你自己把需要的数据放里面,对了,为了安全性,你用自己的 key 或者算法加密后储存,读取时解密。。。。。。
    其他自己想吧
    YuJianrong
        15
    YuJianrong  
       2016-09-06 13:10:39 +08:00
    @simonguo 这不是搞笑的需求什么是搞笑的需求?

    在这个大家越来越重视隐私,浏览器厂商越来越多地用 DNT , Sandbox 等政策 /技术限制网站 /插件获取个人信息的时代,还要逆潮流而行研究如何记录 /传输个人信息,这还不搞笑吗?

    我话放这了,即使你能找到什么漏洞,不出一年,最新的浏览器肯定统统不能用。
    simonguo
        16
    simonguo  
    OP
       2016-09-06 14:26:48 +08:00
    @YuJianrong 存储信息就代表不重视隐私了? 从 cookie 到 Web Storage , IndexDB 以及 WebSql ,浏览器一直都在满足各种存储,提升开发体验,你觉得这样有问题?
    YuJianrong
        17
    YuJianrong  
       2016-09-06 14:44:04 +08:00
    @simonguo 那是在保护个人信息不泄露的前提下做的存储方案,不管是 webStorage 还是 indexDB ( webSQL 都废弃了提这个干吗),最重要的特性都是不能在外域获取信息,避免其他网站存储的信息被泄露和盗用,你这倒好,不要说跨域了,都跨浏览器了,你觉得这样没问题?

    如果没问题,你觉得为什么这种各大广告厂商、黑客、政府监听部门都喜闻乐见的功能为什么还没烂大街呢?
    SakuraKuma
        18
    SakuraKuma  
       2016-09-06 15:22:05 +08:00
    这个只能写端了吧, 不走后端, 纯浏览器是没可能的...上面已经说了..
    wweir
        20
    wweir  
       2016-09-06 17:23:16 +08:00
    对此,我想到了 QQ ,点击客户端上的链接,无论打开什么浏览器都能获得相应的信息。
    当然,如果说你没权限要求用户装客户端和登陆,我只能往不好的方向揣测这么干的意图。
    beginor
        21
    beginor  
       2016-09-06 18:42:55 +08:00 via Android
    开发一个类似 QQ 的客户端,装在客户机上
    muzuiget
        22
    muzuiget  
       2016-09-06 22:55:52 +08:00
    @YuJianrong 说得对了,这真是个搞笑的需求,浏览器就是个沙盒,对 Flash 知名插件也是会有沙盒。除了写个桌面应用级的插件来实现,别无他法。
    codehz
        23
    codehz  
       2016-09-06 23:16:31 +08:00
    其实我第一个回复就是想说这个需求不现实。。。 Flash 共享数据就是个漏洞。。。早该补上了。。。

    我们设想一种情况( X 域是攻击者, Y 域是被攻击者), A 浏览器有安全问题,导致域名 X 可以跨域访问 Y 的内容, B 浏览器没有这个问题,那么当用户使用 B 浏览器的时候,留下了关键数据 a ,然后再使用 A 浏览器访问 X 域,然后 X 域通过跨域漏洞伪装为 Y 域,可以读取到关键数据 a 。。。。

    这就是强行扩大攻击面的做法。。。有道德的浏览器厂商都不会提供类似的接口,能用的一定是(浏览器自身或者第三方的)漏洞。。。

    Flash 有的那个方法,实际就是个漏洞,所以 Chrome 各种限制 Flash ,最新版是默认不加载 Flash 插件的(这就是为啥我上 B 站视频都白屏的原因。。。)。

    Flash 被批漏洞多不是没有道理的
    simonguo
        24
    simonguo  
    OP
       2016-09-07 00:33:16 +08:00
    也可以操作剪切板跨一些浏览器存值
    phxsuns
        25
    phxsuns  
       2016-09-07 08:44:58 +08:00
    不建议这么搞。即使现在能走通,很有可能过一阵子就不能用了。这是给自己找麻烦。
    bk201
        26
    bk201  
       2016-09-07 09:38:15 +08:00 via iPhone
    这种要实现大一统的,要么远程传输数据,要么每个都开发插件,没其他办法.
    tidewind
        27
    tidewind  
       2016-09-07 09:56:37 +08:00
    朋友你真的懂浏览器吗?你这个思路就是奔着 0day 去的,还谈个什么
    imbahom
        28
    imbahom  
       2016-09-07 10:08:42 +08:00
    我想问,有没有什么技术,能让我操作别人的硬盘,逃
    ppwangs
        29
    ppwangs  
       2016-09-07 10:10:40 +08:00
    你怎么保证不同用户使用同一台电脑是使用其本人的账户……
    simonguo
        30
    simonguo  
    OP
       2016-09-07 10:20:57 +08:00
    SharedObject 我已经用了好几年了, 嘿嘿
    YuJianrong
        31
    YuJianrong  
       2016-09-07 20:01:28 +08:00
    你自己也知道 SharedObject 在 Chrome 里不能用(因为在沙盒里)。

    再过两个版本 Chrome 里 Flash 就是缺省关闭的了; Firefox 早就缺省不安装 Flash 了。

    难道你还看不出趋势还想问怎么挖洞?嘿嘿
    jugelizi
        32
    jugelizi  
       2017-08-23 13:55:39 +08:00
    所以 360 可以读取你 QQ 的聊天记录 对么
    技术人员真的很容易走火入魔啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1125 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 17:56 PVG 01:56 LAX 09:56 JFK 12:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86