Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一种安全的方式让web扩展在选项卡中具有ui?_Javascript_Security_Google Chrome Extension_Firefox Addon Webextensions_Content Script - Fatal编程技术网

Javascript 是否有一种安全的方式让web扩展在选项卡中具有ui?

Javascript 是否有一种安全的方式让web扩展在选项卡中具有ui?,javascript,security,google-chrome-extension,firefox-addon-webextensions,content-script,Javascript,Security,Google Chrome Extension,Firefox Addon Webextensions,Content Script,浏览器web扩展可以提供与用户交互的ui,例如(边栏边栏\u操作),或允许单击浏览器\u操作)时弹出的小图标 但是,我希望我的扩展提供一个用户界面,该界面直接显示在网页的上方,因此位于当前打开的选项卡的中心。就在标签里面。为了显示选项卡内的任何内容,我曾想过使用一个和修改网页DOM,但在我看来,这不是一个安全的方法,因为它可能会让不受信任的网页的代码影响用户界面(例如,它可能只是删除所创建的UI,或者更糟的是修改它,从而在我的内容脚本(web扩展)和用户之间的通信中恶意交互 chromium文档

浏览器web扩展可以提供与用户交互的ui,例如(边栏
边栏\u操作
),或允许单击
浏览器\u操作
)时弹出的小图标

但是,我希望我的扩展提供一个用户界面,该界面直接显示在网页的上方,因此位于当前打开的选项卡的中心。就在标签里面。为了显示选项卡内的任何内容,我曾想过使用一个和修改网页
DOM
,但在我看来,这不是一个安全的方法,因为它可能会让不受信任的网页的代码影响用户界面(例如,它可能只是删除所创建的UI,或者更糟的是修改它,从而在我的
内容脚本
web扩展
)和用户之间的通信中恶意交互

chromium文档中包含以下内容:

保持安全
虽然隔离世界提供了一层保护,但使用内容 脚本可以在扩展和网页中创建漏洞

这个问题需要一个答案,如果

a) 在网页的内容区域中不可能有一个UI,该UI也不会受到网页javascript的影响(即,对于内容脚本和网页的javascript,DOM总是可以修改),或者


b) 有一种方法可以在网页内容区域内以“安全的方式”(即网页不受信任的javascript,不会影响显示的UI)呈现UI。

在页面中添加一个iframe元素,src指向通过声明的扩展名内的html文件。该页面将是一个具有完全权限的独立扩展页面(如后台页面或browserAction弹出窗口)。您可以找到关于这种方法的详细的现有答案,甚至教程。@wOxxOm iframe对我来说也是一个简单的解决方案,但是我如何确保(iframe实际上是可见的,并且不包含在其他
DOM
元素之下)。不受信任的网页的javascript是否不能完全从DOM中删除
iframe
(然后重新制作一个假的UI版本)?对于web扩展来说,没有可信的显示方式(如覆盖DOM)似乎是一个相当大的问题。由于
chromium
甚至决定不提供
侧边栏操作
,而是鼓励您立即插入网页
DOM
,因此此安全问题非常令人沮丧。您必须手动检查它,例如使用MutationObserver和IntersectionObserver。@wOxxOm。你的评论似乎描绘了一个可行的解决方案/答案。我一定会尝试一下。通过观察者,似乎可以充分减少来自网页javascript的滥用/攻击,而iframe首先已经禁用了很多访问。伟大的在页面中添加一个iframe元素,src指向通过声明的扩展名中的html文件。该页面将是一个具有完全权限的独立扩展页面(如后台页面或browserAction弹出窗口)。您可以找到关于这种方法的详细的现有答案,甚至教程。@wOxxOm iframe对我来说也是一个简单的解决方案,但是我如何确保(iframe实际上是可见的,并且不包含在其他
DOM
元素之下)。不受信任的网页的javascript是否不能完全从DOM中删除
iframe
(然后重新制作一个假的UI版本)?对于web扩展来说,没有可信的显示方式(如覆盖DOM)似乎是一个相当大的问题。由于
chromium
甚至决定不提供
侧边栏操作
,而是鼓励您立即插入网页
DOM
,因此此安全问题非常令人沮丧。您必须手动检查它,例如使用MutationObserver和IntersectionObserver。@wOxxOm。你的评论似乎描绘了一个可行的解决方案/答案。我一定会尝试一下。通过观察者,似乎可以充分减少来自网页javascript的滥用/攻击,而iframe首先已经禁用了很多访问。伟大的