我可以安全地呈现 html 以便 运行 页面无法使用 Chrome 扩展访问那个 html
Can I render html securely so running page cannot access that html using a Chrome extension
我想构建一个 chrome 扩展以将一些敏感内容注入当前页面。当前页面应该无法访问它,但内容应该呈现在页面上以便用户可以看到它。
如果我将敏感内容放入 DOM,当前页面将能够查询 DOM 并访问敏感内容。
我能想到的唯一可行的方法是注入一个 iFrame,然后它会受到跨站点脚本的保护。
是否有任何 HTML 元素、工具、库或其他技术可以让我实现这一目标?
iframe 可能是目前最好的解决方案。
Shadow DOM 是一个可能的答案(将来*)。
理论上,外部文档只会看到影子根元素,但内部可以放置任何DOM。然而,实际上,阴影 DOM 仍然暴露,只是遍历方式不同。
为了防止检查,您could override some methods,例如
Object.defineProperty(host, 'shadowRoot', {
get: function() { return null; },
set: function(value) { }
});
但这并不安全,因为正如 Rob W 在评论中提到的那样,这可以被拦截。
In the end, it's important to remember that while amazingly fantastic, Shadow DOM has not been designed to be a security feature. Don't rely on it for complete content isolation.
请参阅此问题:Can a Shadow DOM secure my elements? 讨论 Shadow DOM 和其他方法的使用。
* future 指的是 efforts to add 一个 "private" 标志来完全从页面封装阴影 DOM。
另一个解决方案(也未准备好部署)是无缝 iframe。在 Chrome.
中进行了短暂的实验后,全面 interesting concept, it's currently not supported at all
我想构建一个 chrome 扩展以将一些敏感内容注入当前页面。当前页面应该无法访问它,但内容应该呈现在页面上以便用户可以看到它。
如果我将敏感内容放入 DOM,当前页面将能够查询 DOM 并访问敏感内容。
我能想到的唯一可行的方法是注入一个 iFrame,然后它会受到跨站点脚本的保护。
是否有任何 HTML 元素、工具、库或其他技术可以让我实现这一目标?
iframe 可能是目前最好的解决方案。
Shadow DOM 是一个可能的答案(将来*)。
理论上,外部文档只会看到影子根元素,但内部可以放置任何DOM。然而,实际上,阴影 DOM 仍然暴露,只是遍历方式不同。
为了防止检查,您could override some methods,例如
Object.defineProperty(host, 'shadowRoot', {
get: function() { return null; },
set: function(value) { }
});
但这并不安全,因为正如 Rob W 在评论中提到的那样,这可以被拦截。
In the end, it's important to remember that while amazingly fantastic, Shadow DOM has not been designed to be a security feature. Don't rely on it for complete content isolation.
请参阅此问题:Can a Shadow DOM secure my elements? 讨论 Shadow DOM 和其他方法的使用。
* future 指的是 efforts to add 一个 "private" 标志来完全从页面封装阴影 DOM。
另一个解决方案(也未准备好部署)是无缝 iframe。在 Chrome.
中进行了短暂的实验后,全面 interesting concept, it's currently not supported at all