0

我在我的网站上使用了第三方脚本(Chaordic loader.js 用于产品推荐),它被document.referrer垃圾覆盖,让我很头疼。

问题:有没有办法防止这种修改?我可以document.referrer以某种方式“冻结/密封”吗?

我知道我可以取消与公司的合同,但想先试试这个锁。我可以在第三方代码之前或之后放置 javascript 代码,但不能修改它。

覆盖的第三方代码document.referrer

var t = window.chaordic && window.chaordic.readCookie && window.chaordic.readCookie(e);
Object.defineProperty(window.document, "referrer", {
  configurable: false,
  get: function() { return t }
});
4

2 回答 2

0

那么答案几乎在于你的问题

// You need to put the following code before their code runs 
const referrer = document.referrer;
Object.defineProperty(window.document, "referrer", {
  configurable: false,
  get: () => referrer,
});

你也可以这样做

Object.defineProperty(window.document, "referrer", {
  configurable: false,
  writable: false,
  value: document.referrer
});

现在除了 Javascript,我会考虑其他选项。更改 document.referrer 是他们正在做的一件令人讨厌的事情,你知道。他们可能正在做其他你不知道的讨厌的事情。

于 2019-09-11T19:34:25.477 回答
0

如果您可以控制将您带到混乱页面的文档,请document.referrer确保使用该属性设置任何/所有链接,该rel="noreferrer"属性会告诉当前窗口在导航到下一个时不要保留对自身的引用窗口,使document.referrer返回为空。

由于我不确定您是否可以访问调用页面或您在目标页面上的结束情况,因此我没有将您的问题标记为重复,但这里有更多信息

于 2019-09-11T18:25:53.753 回答