将浏览器扩展的 CORS 策略列入白名单?

Whitelist a CORS policy for a browser extension?

我有一个可以 POST 到服务器的浏览器扩展。我想在我的服务器中将扩展程序的来源列入白名单。例如,对 Chrome 扩展的请求源自如下位置:chrome-extension://fjhbdidbplpijoncnlfoadfadfasdf 和来自 Firefox 的位置:moz-extension://cadf4351-e4f3-ca4d-b974-812309843dafd

我知道我可以在我的服务器上将这些特定地址列入白名单,但我不确定它们是否是静态地址。这些随机生成的位置是否会发生变化,就像我提交更新一样?有没有办法永久设置它们?

这些有变化吗?

Chrome 和 Firefox 的情况不同。

Chrome

对于网上应用店中的已发布扩展,ID 是固定的。你可以放心。

对于开发中的解压扩展,通过提供有效的"key".

ID is determined either by the "key" value in the manifest, if present, or the absolute path to the extension folder. So it may change if you move the extension about. But you can "pin" it

火狐

您在 Mozilla 中看到的是特定于安装的来源。无论扩展的 ID 是什么,您在此处看到的 UUID 在每次安装扩展时都会有所不同(但应该在更新后保持不变)。

有人讨论了机制 in this bug

本质上,这是一种反扩展拦截技术。

不幸的是,这意味着您不能仅将一个来源列入白名单并就此结束。

依靠这个是个好主意吗?

可能不会。虽然浏览器倾向于忠实地报告 Origin,但其他能够生成请求的工具并不遵循这一点。所以比较容易造假