提问人:Berk Özel 提问时间:5/6/2020 最后编辑:Heretic MonkeyBerk Özel 更新时间:4/10/2023 访问量:5232
如何使用 javascript 检测 Safari 13 上的“防止跨站点跟踪”是否处于活动状态
How to detect if Prevent Cross-site tracking is active on Safari 13 with javascript
问:
我想检测“防止跨站点跟踪”何时在使用 JavaScript 的浏览器中处于活动状态。
我的挑战是试图找到一种方法来检测这一点,并在用户浏览器禁用此跨站点跟踪时向用户显示警告弹出窗口。在 Safari 13 默认禁用它后,这变得至关重要。我相信这可能对在 iframe 上使用 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);
但是,此解决方案似乎不再有效。
答:
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>
评论