这是一个安全问题,我想避免通过chrome内容脚本注入代码,如果是这种情况,如何检测?
假设:
content-script是恶意代码,因此它可能会避免消息传递响应。
发布于 2016-07-05 09:02:15
据我所知,这是不可能的。
根据Execution environment的说法,
的特殊环境中执行
在页面上运行的
定义的任何变量
我相信#3已经告诉我们,如果扩展不在我们的控制之下,我们就不知道是否有一些内容脚本正在运行。
发布于 2018-06-04 22:12:41
Content scripts可以访问相同的DOM,但可以在a isolated environment中运行,这意味着它们不能访问/更改您的javascript,但可以更改您的DOM。
如果要检测内容脚本是否更改了DOM,可以使用MutationObserver侦听DOM更改。如果您自己不修改DOM (例如使用React ),那么您可以监听任何更改。
发布于 2016-07-05 20:33:58
您可以尝试将这样的脚本添加到您自己的浏览器中,看看它是如何显示的。如果它确实出现在呈现的超文本标记语言中,那么也许可以用JavaScript检测到它:
$('script').filter(function () {
var src = $(this).attr('src'),
result,
externalScripts = [];
if(src !== undefined){
//check for scripts which are not served from your domain
//you could also try just returning the scripts which have no src attribute
result = src.match(/^(?:https?:)\/\/expected.domain.com/);
if(result === null) {
externalScripts.push(src);
}
}
return externalScripts;
})但最有可能的是检测不到,因为听起来像是Chrome脚本被沙盒包住了。最好的方法是找出如何防止一件事是尝试自己做那件事,看看它如何影响页面。
你也应该问问自己,是否真的有必要防止这种情况发生。这似乎不太可能是一个安全风险。
https://stackoverflow.com/questions/38193181
复制相似问题