在我的SDK插件中,我想
我的附加SDK内容脚本如何与网站通信?
答案 0 :(得分:3)
有许多方法可以与页面脚本进行交互,其中最常见的方法包含在官方文档中,包括问题中列出的所有方法。
请阅读"Interacting with page scripts"。
但是,应该指出的是,以安全的方式与页面脚本交互可能很困难。请特别注意unsafeWindow
被称为不安全的原因是:
小心使用unsafeWindow:你不能依赖于你所期望的任何属性或功能。其中任何一个,甚至是setter和getter,都可以通过页面脚本重新定义。除非你信任这个页面,否则不要使用它,即使这样也要小心。
此外,unsafeWindow不是受支持的API,因此可以在SDK的未来版本中删除或更改。
从unsafeWindow
读取数据或执行其功能是安全的,因为它不能直接导致另一个(您的内容脚本)安全上下文中的代码执行。 Javascript引擎隔间将确保这一点。
但是,您绝不能信任来自网站的数据。
总是期望代码抛出,拒绝服务你的意外无限循环或类似。永远不要在内容脚本的上下文中明确地或隐含地eval
使用代码。
此外,永远不要认为你真的可以信任一个网站,即使它是你自己的网站。网站可以被入侵(黑客入侵),所有者可以在未来进行更改,数据可以在途中进行更改(活跃的中间人攻击),或者其他附加组件可以对其进行修改等。