Google Apps脚本:检查请求的引用网址(独立网络应用)

时间:2015-01-14 19:21:15

标签: google-apps-script google-apps-for-education

我想检查一个(独立的,匿名的)Google Apps脚本的引荐网址,如果引荐网址是两个已知的“好”网址之一,我们会采取一些措施。

有办法做到这一点吗?到目前为止,我提出的最好的内容涉及客户端代码,不幸的是document.referrer总是https://script.google.com开始,而不是带有Google Apps脚本链接的网页地址:

Code.gs

function doGet() {
  var t = HtmlService.createTemplateFromFile('index');
  t.heading = "My heading"
  return t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
}

function validReferrer(ref) {
  Logger.log("Referrer is: "+ref)
  if (ref.indexOf('my-good-url.com') > - 1 ) {
    return true
}
else 
  return false
}

的index.html

<div>
<script>
  function onSuccess(a) {
  alert(a);
  }
  // referrer always begins https://script.google.com
  var ref = document.referrer || "doesn't have a referrer"; 
  google.script.run
  .withSuccessHandler(onSuccess)
  .validReferrer(ref)
</script>

<h1><?= heading ?></h1>
</div>

理想情况下,我想完全在服务器端运行检查。正如this page所述,出于安全原因,内容服务返回的内容不会从script.google.com提供,而是重定向到script.googleusercontent.com上的一次性网址“ - 我的发现肯定证实了这一点。有趣的是,当我将沙盒模式更改为NATIVE时,根本不会返回引用者。我想caja正在过滤我的客户端代码。

真正的引荐页面开始http://(通过发布document.referrer在我的浏览器的Web调试器控制台中确认。)

0 个答案:

没有答案