如何找出哪个父URL称为我的脚本?

时间:2018-06-28 09:11:56

标签: javascript php iframe referrer

我已经在http://example.com/banner下为网页横幅创建了一个页面,我将此链接发送到发布者网站并支付其运行费用。

但是,有些发布商在运行,有些则没有,我想找到该页面需要哪个父URL或单击来自何处。通常,他们会将这个网址放在iframe中以进行投放。

(许多页面没有传递引荐参数。)

我在JS和PHP中尝试了不同的方法,但是您可能会猜到我将http://example.com/banner作为父URL。

是否可以使用PHP,JS或任何其他代码来从其他域中了解父URL?我有一个发布商列表,但我还需要知道除那些网站之外,哪些网站运行着横幅广告。

为了更清晰,这里是一个模式:

  

我的带有横幅的页面>我的发布者网站>用户访问   出版商

     

我不想获得访问我的发布者网站或页面的用户的IP   网址。我想查看介于两者之间的发布商网站的URL。

由于这是我的Web服务器,因此我可以毫无问题地读取访问日志,错误日志等。

我愿意接受任何建议。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试在服务器上托管一个javascript文件。

然后,他们会将脚本放置在要放置横幅的任何位置:

<script src="//yoursite.com/banner.js"></script>

您可以在该URL中使用参数来提供自定义js。

然后从根本上代码看起来类似于以下内容,该代码将标语插入放置脚本的DOM中。您从window.location.href获取站点URL,然后在请求图像时将其作为参数发送。 (您也可以使用Cookie等)

<script>
  // inject an anchoring element
  document.write('<div class="banner_ad"></div>');
  // find it
  var parentDiv = document.getElementsByClassName("banner_ad");
  // create the img/banner, notice the site param
  var banner = document.createElement("img");
  banner.src = 'http://via.placeholder.com/350x150?site=' + encodeURI(window.location.href);

  // loop over the parent elements of each anchoring element
  for (var i = 0, len = parentDiv.length; i < len; i++) {
    // create the link
    var link = document.createElement('a');
    link.appendChild(banner);
    link.setAttribute('title', 'Ads by Foobar');
    link.setAttribute('href', 'http://example.com');
    // inject the link and img
    parentDiv[i].parentNode.appendChild(link);
  }
</script>

然后在服务器端,寻找$_GET['site']参数。

这不是万无一失的,没有。