JavaScript如何唯一标识一个网站

标签 javascript google-chrome-extension

我正在为 chrome 编写一个扩展,但也可能有针对我的问题的常规 JavaScript 解决方案。

我的扩展增强/扩展了网站可用的 API。

例如,网站可以从我的扩展请求访问 UDP 套接字,系统将提示用户授予权限。

当提示用户是否要向网站授予该功能的访问权限时,我需要记住哪些网站可以访问哪些功能。

网站标识的最佳形式是什么,可以通过常规 J​​avaScript 获得,还是使用 Chrome 扩展 API?

我的想法

  • 该域名可以使用,但必须在 appspot.com 等域上使用。 ,当单个应用程序请求权限时,该域下的所有应用程序现在都可以访问。

  • 查看子域的问题是您通常需要整个域的权限。

  • 我认为最有意义的解决方案(仅适用于 HTTPS)是查看域证书。我应该能够比较公钥或其他东西,然后它与证书一致。如果我没记错的话,您可以选择为整个域或只是子域等创建证书。遗憾的是,似乎没有任何方法可以访问 JavaScript 中的证书信息,并且 chrome 扩展 API 似乎没有提供任何内容任何一个。这看起来确实是一个完美的解决方案。

最佳答案

所有网络中权限的标准标识是 URL originscheme://host:port (端口是可选的),您可以通过手动字符串操作或作为 new URL(urlString).origin 来提取,尽管这是一个速度较慢,尤其是对于像数据 URI 这样的超长字符串。

要解决域问题,请使用 Public Suffix List ,有很多库( linklink )。

关于JavaScript如何唯一标识一个网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59743201/

相关文章:

javascript - Chrome 扩展每分钟刷新一次页面并在每次刷新时运行一个(javascript)脚本

javascript - 带有CSS计数器的jQuery select元素

javascript - 将表单中的 JSON 添加到另一个表单的隐藏输入中并提交

javascript - ExtJS 3 : form load with several items with identical names

javascript - 如何使用javascript在输出中单独显示列表项

javascript - Wordpress 可以根据视口(viewport)大小获取模板部分吗?

javascript - 传单-刷新 map

python - 是否可以在我的 VPS 上运行服务器的情况下从 Google 获取刷新 token ?

javascript - 使用 Chrome 扩展中的消息传递处理 keyup 事件

google-chrome-extension - Popup.html 未在 Chrome 扩展中打开