V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nikoo
V2EX  ›  问与答

Chrome 的插件有没有权限一说?是否可以随意作恶?

  •  
  •   nikoo · 2018-02-17 11:19:36 +08:00 · 4117 次点击
    这是一个创建于 2500 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如我安装了一个针对 A 网站的屏蔽部分内容插件,那么理想状态下这个插件仅在我浏览 A 网站时才生效
    但实际是否是这个插件可以记录我浏览任何其他网站的内容?
    比如我在 B 网站用户登录页面输入密码,这个插件是否有权限用 JS 记录我所有 onkeydown 事件?

    如果是这样,那么 Chrome 是如何防范这类型作恶的?仅凭开发者自觉吗?
    15 条回复    2018-02-17 21:14:41 +08:00
    napsterwu
        1
    napsterwu  
       2018-02-17 11:21:24 +08:00 via iPhone
    summerwar
        2
    summerwar  
       2018-02-17 11:21:39 +08:00
    这种事情 肯定有防范,看下 chrome 插件的官方文档就知道了
    wjm2038
        3
    wjm2038  
       2018-02-17 11:21:42 +08:00 via Android

    用户举报
    nikoo
        4
    nikoo  
    OP
       2018-02-17 11:22:38 +08:00
    @napsterwu “是”的意思是目前插件的确可以随意作恶?仅凭开发者自觉?
    nikoo
        5
    nikoo  
    OP
       2018-02-17 11:25:36 +08:00
    @summerwar 简单看过一下,似乎这方面 Google 特别宽松,比如插件可以随意热更新之类,并没有看到在技术上给插件权限或者沙盒进行限制,也就是目前目前任何插件只要开发者愿意可以随意作恶。
    k9982874
        6
    k9982874  
       2018-02-17 11:34:45 +08:00 via iPhone   ❤️ 1
    完全可以,安装时会有权限申请,像安卓一样。
    用户同意 google 就免责了。
    ming
        7
    ming  
       2018-02-17 11:35:09 +08:00 via iPhone   ❤️ 1
    不是,有作用域的权限,在安装插件的时候有提示的,虽然很多插件直接要的是全部网站的权限。

    基本上靠开发者自律,例如京价宝( jjb.im )就只要了京东相关业务域名的权限,这个其实有个很麻烦的问题,增加或者修改域名后,插件更新之后会被 chrome 自动禁用。
    Mavious
        8
    Mavious  
       2018-02-17 11:40:36 +08:00 via iPhone   ❤️ 1
    当年 chr 的市场被称为“菜市场”,审批随意,跳转乱飞。css 包一包都能升格成扩展可以想见市场之乱。
    相对于菜市场,ffox 的市场严格规整很多。
    wukongkong
        9
    wukongkong  
       2018-02-17 11:41:37 +08:00 via Android   ❤️ 1
    可以的,有时候开发方便直接要的全部权限
    AEANWspPmj3FUhDc
        10
    AEANWspPmj3FUhDc  
       2018-02-17 11:43:47 +08:00   ❤️ 1
    https://www.cnbeta.com/articles/soft/691335.htm

    前段时间不是有条新闻吗,插件可以阻止用户卸载自己。
    kualalumpur
        11
    kualalumpur  
       2018-02-17 11:46:43 +08:00   ❤️ 2
    你说的这种情况在本质上 Chrome 是会隔离。但是实际中这种隔离并不是百分百让人满意的。

    Chrome 对插件的权限管控是基于插件中 manifest.json 中的 permissions 字段实现的,例如:如果插件需要操作与 A 站相关的内容(脚本注入,AJAX 访问等)则至少需要在 permissions 中标注 "*://av__e.com/*". 如果插件需要管理 Chrome 的 Tab 标签相关的功能,则也需要在 permissions 中标注"tabs".

    但是, 由于实际业务逻辑涉及到的网站比较多或者是开发者想要滥用权利, 则上述的 A 站相关内容插件的开发者可以将上述`*://av__e.com/*`改成"*://*/*" 来获得所有网站的权限.

    扯远了,简单说一下我个人装第三方插件的基本审查吧:

    0. 这个插件是否开源, 开源且代码比较少就简单翻阅一下, 如果不开源的先扣点影响分
    1. 这个插件请求的权限是否让我满意(你能在点击"添加"后弹出的提示框中看到"改程序可以: xxxx"的描述,或者是在"chrome://extension"中点击详细信息查看)
    2. 安装用户数量和用户普遍评论
    wclebb
        12
    wclebb  
       2018-02-17 12:04:15 +08:00 via iPhone
    举报功能不是随便写的。
    fbbsa
        13
    fbbsa  
       2018-02-17 15:10:39 +08:00 via iPhone
    鼠标手势插件偷偷上传浏览 url
    sneezry
        14
    sneezry  
       2018-02-17 15:23:31 +08:00 via iPhone
    目前完全凭开发者自觉。大部分扩展使用的权限写在 manifest 的 permissions 里,安装时如果不接受就不能安装,一旦安装了就有声明的全部权限。Google 为开发者提供了完善的权限申请机制,比如有 optional permission,安装时不赋予相关权限,当需要时向用户申请,但是用户可以拒绝。如果 Chrome Web Market 能够像 App Store 那样严格审核就好了。
    dobelee
        15
    dobelee  
       2018-02-17 21:14:41 +08:00 via Android
    人生下來是不是要綁住手腳才能防止作惡?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   838 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 21:17 · PVG 05:17 · LAX 13:17 · JFK 16:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.