joe*_*rgi 6 javascript https ads mixed-content
有没有办法全局捕获混合内容错误?
要明确:我不想允许不安全的内容,我想做的就是优雅地处理错误。
背景故事:我正在集成程序化广告,也就是说我必须包含一些脚本标签,它返回一些更多的 JavaScript,它可以加载更多的资源,等等......
我无法控制进入我网站的内容,有时这些资源包括 http 资源,这会引发混合内容错误。然后我留下了一个空的广告容器,看起来有点难看。此外,我可以尝试转售此广告空间,因为第一次尝试失败。
我已经尝试过 window.onerror,但没有成功。
无法捕获混合内容警告,因为它们与 JavaScript 无关,而是由浏览器处理。
您可以做的是使用Upgrade-Insecure-Requests标头来阻止浏览器完全加载不安全的内容。并且,根据您的用例,您可以使用MutationObserver对 HTML 中的更改做出反应,或者在document.body捕获阶段监听错误事件以对错误做出反应:
<html>
<head>
<meta
http-equiv="Content-Security-Policy"
content="upgrade-insecure-requests"
/>
</head>
<body>
<script>
const el = document.createElement("img");
el.src = "http://unsafeimg";
document.body.appendChild(el);
document.body.addEventListener(
"error",
(err) => {
console.log("Failed to load\n", err.target);
},
/* Notice the true value here. It is required because Error Events do not bubble */
true
);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
另一种选择是设置一个Service Worker来拦截和处理不安全的请求。这可能是最好的解决方案,因为这可以让您全面了解网站尝试加载的数据。
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |