绕过 Chrome 的 CORB 功能

问题描述 投票:0回答:2

我正在尝试加载一些外部 JavaScript,但 Chrome 没有。
需要明确的是,我使用书签来创建新的脚本元素,将 src 属性更改为我的源代码,然后将其附加到标题。
这是代码:

javascript:var script=document.createElement("script");script.src="URL";document.getElementsByTagName('head')[0].appendChild(script);

不幸的是,Chrome 的跨源读取阻止算法阻止我将源代码注入标头。我相信这是因为所述源文档只是纯文本,而不是可接受的 JavaScript 文件。
有什么解决办法吗?

javascript bookmarklet cross-origin-read-blocking
2个回答
3
投票

有许多网站由于 CSP(内容安全策略)而不允许您从其他 URL 加载脚本。您应该检查您尝试注入脚本的网站的 CSP 标头。

有关 CSP 的更多信息:

更新

我看到您编辑了您的问题(在我最初的回答之后),现在您询问了有关 CORB 问题的具体问题。在这种情况下,您必须确保您的脚本返回正确的

content-type
标头。如果你的脚本没有返回
text/javascript
chrome 将不会执行它。

如何提供 JavaScript 文件?如果您愿意提供更多详细信息,我们可以尽力提供帮助。

服务器通常会为 JS 文件提供正确的标头。但也有一些例外。例如当用户将 JS 文件上传到 GitHub 时,GitHub 将在没有内容类型标头的情况下提供该文件。这是因为他们不希望仅信任 GitHub 的网站管理员面临用户在其网站上执行用户上传的脚本(到 GitHub)的风险。

更多信息:


0
投票

我使用的一个解决方法是将脚本/要点放入 Github 存储库中,并使用 Pages 将其发布为静态网站。 Github 应该使用正确的标头来服务器 JS 文件。

© www.soinside.com 2019 - 2024. All rights reserved.