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

How to detect if Prevent Cross-site tracking is active on Safari 13 with javascript

提问人:Berk Özel 提问时间:5/6/2020 最后编辑:Heretic MonkeyBerk Özel 更新时间:4/10/2023 访问量:5232

问:

我想检测“防止跨站点跟踪”何时在使用 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 Cookie Safari 浏览器

评论

0赞 Sana Ahmed 11/10/2023
你有没有找到解决方案?

答:

0赞 Leo 5/9/2022 #1

您可以尝试在您的网站上使用 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>