V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rizon
V2EX  ›  浏览器

很痛苦,火狐对扩展程序的限制让我开始自我怀疑了

  •  1
     
  •   rizon · 305 天前 via iPhone · 5747 次点击
    这是一个创建于 305 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开发的扩展程序准备适配火狐时发现火狐在 mv3 版本里,禁用了 script-src 的外部资源只允许使用 self ,而且还禁止了 blob 。
    我的扩展程序的用户认证用的是 clerk 这个服务,这个服务里的代码有很多都是远程 js 和 blob 。 我费劲改了 clerk 的代码把远程 js 改成本地,结果发现还有 blob 的问题,就不知道怎么办了。

    没有看到任何社区询问这个问题,现在我开始怀疑是不是我写扩展的思路不对。。。扩展程序的登录是不是不是这么搞,也没有相关的教程和案例可以看。。。

    找不到相关知识就很难受。 痛,非常之痛。。。

    35 条回复    2024-03-01 22:48:01 +08:00
    rizon
        1
    rizon  
    OP
       305 天前 via iPhone
    关了电脑,躺在床上,我突然想到一个问题,他是不是只限制的前端代码,background 里是不是没限制?如果是的话我就把请求都转移到后台的脚本里,然后麻烦一点 message 通信一下。
    明天看看吧
    loginv2
        2
    loginv2  
       305 天前
    chrome 的 Manifest v3 好像也这样吧? 不太清楚 问问
    theprimone
        3
    theprimone  
       305 天前
    MV3 好像就是所有代码都必须在插件包
    yfugibr
        4
    yfugibr  
       305 天前 via Android
    还-+++
    yfugibr
        5
    yfugibr  
       305 天前 via Android
    @yfugibr #4 误触了抱歉
    oott123
        6
    oott123  
       305 天前
    建议你专门打开一个标签页让用户登录吧,登完把凭据传到你插件里
    laminux29
        7
    laminux29  
       305 天前   ❤️ 5
    安全就是这样的,为了安全,需要牺牲很多便利。

    自古的经验来看,便利可以让你一时爽,但安全问题可能让你送命。

    最近南京小区失火新闻可以搜一下,居民们为了方便,违规停电动车,最后死了那么多人。
    DiamondYuan
        8
    DiamondYuan  
       305 天前 via Android
    你直接获取你网站的 cookie 就好了,这样插件里不需要登录。
    liuweiqing
        9
    liuweiqing  
       305 天前
    确实,但肯定有解决方法而且会比你想象的简单
    kidlj
        10
    kidlj  
       305 天前 via iPhone
    background scripts 没有限制外部请求,可以从 content scripts 发消息到 background 这样来发起请求。

    可以参考我写的扩展: https://github.com/kidlj/metword.extension
    rizon
        11
    rizon  
    OP
       305 天前
    @DiamondYuan #8 这事我也在想,但是我不知道插件怎么获取网站的 cookie
    rizon
        12
    rizon  
    OP
       305 天前
    @kidlj #10 非常感谢,我看一下
    theprimone
        13
    theprimone  
       305 天前
    @rizon #11
    const result = await browser.cookies.get({
    url: "站点 URL",
    name: "站点 cookie 名称",
    })

    需要 cookies 权限
    google2020
        14
    google2020  
       305 天前
    v3 是禁止外部脚本,不是禁止外部请求。

    具体来说,登录请求代码写在扩展代码包里就可以。同时,在第三方网页发起网络请求有可能触发跨域限制,所以不要用 content script 去发起,用 background script 去发起。
    rizon
        15
    rizon  
    OP
       305 天前
    @google2020 #14 主要是我用了第三方的认证服务的,他们的 sdk 本身就会引用外部脚本。除非我不用 sdk ,只能自己写了。

    @loginv2 #2 @google2020 #14 但是我的 chrome 插件就没有这些问题,也是 mv3 就没关系。就火狐不行。
    google2020
        16
    google2020  
       305 天前
    @rizon 不可能,mv3 明确说明禁止外部脚本,要么是 chrome bug ,要么是通过插入 document 元素的方式加载且刚好对应网页没有禁止第三方脚本。
    VIVIANSNOW
        17
    VIVIANSNOW  
       305 天前
    不要管火狐不就完了。用的人极少极少。收益不成正比。算是浪费你的时间
    rizon
        18
    rizon  
    OP
       305 天前
    @google2020 #16 不是 content 脚本里,是在 options 页面的。
    NewYear
        19
    NewYear  
       305 天前   ❤️ 2
    @laminux29
    一直认为针对“电动车、摩托车”的许多限制是不太合理的,禁摩、禁电动车入户等等,都是一纸条文下去就什么都不管了,出了问题就是居民不道德,居民伤天害理。
    摩托车有风险,禁,没法出行是吧,电动车不安全是吧,买轿车啊,没地方放车是吧,买个房啊,主打的就是大家都是富裕家庭。对了,买车放家里就可以了,千万别开出门,外面哪有那么多车位。
    反正我自己是买了车,但是出行一般是共享单车……所以明明摩托车/电动车可以解决问题,最后各种买买买,巨大支出,年年保险费,实际用的反而是自行车……

    我这边前几个月突然被上门检查,说是查不准用煤气罐热水器,我满脸懵逼,这个也不让用吗,还专门查了很久,找不到同等体验的平替(要么使用不方便,要么安装贼复杂),真的很不喜欢这样子一刀切的玩法。


    所以这个电动车入户充电的问题,还是建议搞一些方便居民充电的设施,我这边居民从来不入户充电,很简单啊,因为门口和公司停车处都有电动车充电桩,方便得很,价格也很便宜。
    哦对了,也可以像我们这边禁摩一样,直接禁止电动车出行就行了,也能解决问题。
    NewYear
        20
    NewYear  
       305 天前   ❤️ 4
    对了,楼上的我看似有点跑题,但是我想说“居民们为了方便,违规停电动车,最后死了那么多人。”这个因果关系是不成立的,实际是“制定规则的部门”为了规范而规范,没有考虑居民实际使用需求,也没有帮助居民解决问题,居民自己也不可能去室外设立充电桩(在我们农村反而没问题,自家掏钱搞一个就是了),导致居民“普遍性违法”,然后才是“死了那么多人”。

    很有意思的是,在这个事件中,规则制定人、电动车生产方等等都是无责任的,责任全是消费者的问题,主打的就是一个花钱买罪受,为了方便倾家荡产。
    Huelse
        21
    Huelse  
       305 天前   ❤️ 7
    @NewYear #20 所以你只是在输出情绪,根本没辩证地思考,只想把这个问题归咎为政府及其政策问题,和 op 主题没任何关系
    NICEghost
        22
    NICEghost  
       305 天前
    @Huelse #21 说得对,开香槟咯🍾
    yanwen
        23
    yanwen  
       305 天前   ❤️ 2
    请务必救救忠实的火狐用户。
    loveqianool
        24
    loveqianool  
       305 天前
    写信给 clerk 这个服务
    hello2090
        25
    hello2090  
       305 天前 via iPhone   ❤️ 3
    @NewYear 是的,我的第一反应也是这个。我不在国内,但我都有了一提到电瓶车充电就会着火的印象,看到很多人一看见有人把电瓶车带上楼或者怎么样就去阻止。

    是电瓶车一充电就 100%爆炸还是容易爆炸还是只在居民楼容易爆炸?那这要么是电瓶的问题要么是供电系统的问题。店里买来的东西在自家充电不是正常吗?似乎大家都习惯了谴责电瓶车主。

    这就像人人都默认房子装修好了要晾甲醛,为啥新房子就必须有甲醛呢?
    CLMan
        26
    CLMan  
       304 天前
    相应的功能在 chrome 下能通过吗,你先按照 Chrome v3 的相关文档来开发,最后再考虑兼容性问题。
    qiqw
        27
    qiqw  
       304 天前
    为什么不用 plasmo , 看看这个 https://docs.plasmo.com/framework
    SayHelloHi
        28
    SayHelloHi  
       304 天前
    在你的网页中使用:chrome.runtime.sendMessage 发送消息

    在 background.js 中使用:chrome.runtime.onMessageExternal.addListener 接收消息





    如何实现网页和 Chrome 插件之间的通信

    https://unclechen.github.io/2018/06/09/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%BD%91%E9%A1%B5%E5%92%8CChrome%E6%8F%92%E4%BB%B6%E4%B9%8B%E9%97%B4%E7%9A%84%E9%80%9A%E4%BF%A1/

    可以看看这个文章
    rizon
        29
    rizon  
    OP
       304 天前
    @qiqw #27 用了 plasmo 了,它的编译并没有处理这个问题。

    @yanwen #23 哈哈哈,就是因为有个火狐用户和我说想让我做一下兼容,我才开始考虑的。

    @loveqianool #24 提过工单了,等工作日看下回复

    @SayHelloHi #28 嗯,谢谢,如果没有其他合适的方案,我就试试这样改造一下
    laminux29
        30
    laminux29  
       304 天前   ❤️ 1
    @NewYear

    你觉得官方出台限制电动车、摩托车不合理,那请问,很多地方都出台了摩托车要考驾照、买保险,有几个人执行?

    电动车放楼道里有风险,有几个人规规矩矩地把电动车放到了规定地点?

    不要总站在一个角度思考问题,请多换位思考。
    SayHelloHi
        31
    SayHelloHi  
       304 天前   ❤️ 1
    火狐上架和审核比 Chrome 严格很多

    曾经在火狐上架过插件

    插件会请求一个 url 获取数据,更换插件 Options 页面的 Banner 信息 (如果出现啥问题,Banner 才会显示)

    第一次上架:工程源码上传 审核 通过 上架 没问题

    过了几个月 有火狐插件审核员对插件有质疑,会收到类似邮件:

    真的是人工审核,要给项目工程源码,还要回答审核员的问题
    他们真的懂代码,还可以帮你优化代码 😎

    Please address the issues raised in the reviewer's notes and inquire about any unclear items. Afterwards, please upload a new version of your add-on at https://addons.mozilla.org/en-US/developers/addon/fastgithub/versions.

    To respond, please reply to this email or visit https://addons.mozilla.org/en-US/developers/addon/fastgithub/versions. If we do not hear from you within 14 day(s) of this notification, these versions will be removed from addons.mozilla.org. Current users of these versions will be unaffected.

    Thank you for your attention.

    审核员主要质疑的地方:
    1. 你的 URL 是否安全,是否会发送有害信息
    2. 你的服务器是否安全,是否会被 xxx ,通过 URL 给用户发送 xxx 信息,让用户点击

    请提供服务器安全监测相关证明和以及你如何保障 URL 的安全
    psklf
        32
    psklf  
       304 天前
    请务必救救忠实的火狐用户。
    NewYear
        33
    NewYear  
       304 天前
    Chrome/Edge/Firefox 我窜着用,楼主太棒了。

    写拓展/插件难不难啊,想学学,现在都是写油猴脚本,权限太低了,看起来还是写插件有意思。
    rizon
        34
    rizon  
    OP
       303 天前
    @SayHelloHi #31
    @psklf #32 一个一直没用过火狐的我,打开火狐简直像个新世界,😂


    @NewYear #33 注册、审核上线这些都挺费劲的。开发的话也有很多限制,写起来不像脚本那么自由。
    willm
        35
    willm  
       299 天前
    请务必救救不太忠实的火狐用户。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3268 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.