如何使用 javascript 检测 Safari 13 上的防止跨站跟踪是否处于活动状态

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

我想使用 JavaScript 检测浏览器中的“防止跨站点跟踪”何时处于活动状态。

我的挑战是试图找到一种方法来检测这一点,并在用户浏览器禁用此跨站点跟踪时向用户显示警告弹出窗口。在 Safari 13 默认禁用它后,这一点变得至关重要。我相信这对于在 iframe 上使用 cookie 的人可能会有所帮助。

有一些方法,例如

检查第三方cookie是否启用

https://gist.github.com/iansltx/18caf551baaa60b79206

试图使用不同的方法绕过此安全功能,其中一些方法不再有效。

基本上我尝试实现的是通过 iframe,尝试使用 JavaScript 检测浏览器上是否启用了“防止跨站点跟踪”。

我尝试使用此代码:

var receiveMessage = function (evt) {
  if (evt.data === 'MM:3PCunsupported') {
    document.getElementById('result').innerHTML = 'not supported';
  } else if (evt.data === 'MM:3PCsupported') {
    document.getElementById('result').innerHTML = 'supported';
  }
};
window.addEventListener("message", receiveMessage, false);

但是,这个解决方案似乎不再起作用了。

javascript cookies safari
1个回答
0
投票

您可以尝试在您的网站上使用 Google Analytics(分析)并添加代码来检测它是否加载。如果未加载,则跟踪器拦截器可能处于活动状态。

示例:

<script>
var active;
</script>
<script src="https://googletagmanager.com/…" onerror="active = 1;"></script>
<script>
if (active !== 1) {
alert('Prevent cross site tracking is disabled');
} else {
alert("Ok")
}
</script>
© www.soinside.com 2019 - 2024. All rights reserved.