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

74 天前
 rizon

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

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

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

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

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

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

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

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

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

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

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


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

很有意思的是,在这个事件中,规则制定人、电动车生产方等等都是无责任的,责任全是消费者的问题,主打的就是一个花钱买罪受,为了方便倾家荡产。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1018209

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX