我有一个浏览器扩展程序,可以将其发布到服务器。我想在服务器中将扩展名的来源列入白名单。例如,对Chrome扩展程序的请求源自chrome-extension://fjhbdidbplpijoncnlfoadfadfasdf
之类的位置,而来自Firefox moz-extension://cadf4351-e4f3-ca4d-b974-812309843dafd
我意识到我可以将服务器上的那些特定地址列入白名单,但是我不确定它们是否是静态地址。这些随机生成的位置是否会发生变化,例如是否提交更新?反正有永久设置它们吗?
答案 0 :(得分:3)
Chrome和Firefox的情况有所不同。
对于网上商店中的发布的扩展名,该ID是固定的。您可以依靠它。
对于正在开发中的未压缩扩展,ID(is determined)由清单中的"key"
值(如果存在)或扩展文件夹的绝对路径组成。因此,如果您移动扩展名,它可能会更改。但是您可以通过提供有效的"key"
"pin" it。
您在Mozilla中看到的是特定于安装的来源。无论扩展程序的ID是什么,您在此处看到的UUID在每次安装扩展程序时都会有所不同(但应通过更新保留下来)。
对机制in this bug进行了一些讨论。
本质上,这是一种防扩展阻止技术。
不幸的是,这意味着您不能只将一个来源列入白名单并使用它来完成。
可能不是。尽管浏览器倾向于忠实地报告Origin,但其他能够生成请求的工具却没有遵循该报告。因此,进行欺骗相对容易。