哪些网站在使用我的 GitHub 托管脚本?

Meg*_*iae 7 html javascript github

假设我有一个foo.js在 GitHub 存储库中命名的 JavaScript 脚本。我需要知道哪些站点(域)正在使用此脚本。因此,例如,如果一个网站www.example.com正在引用我的脚本......

<html>
  <head>
    <script src="https://myGitHubRepo/foo.js"></script>
  </head>
  etc...
</html>
Run Code Online (Sandbox Code Playgroud)

我想获取、跟踪或example.com列为域。更明确地说,我不想跟踪访问的实际用户,www.example.com也不想跟踪他们的 IP 或类似的东西,我只想跟踪或列出在 HTML 中引用我的脚本的站点(域)。那可能吗?


PS:一些假设的解决方案及其问题:

  1. 想到的第一个想法是使用分析工具;然而,尽管我是我的代码的所有者,但我不是包含 repo 的站点的所有者:GitHub 是所有者。因此,使用分析工具似乎是不可能的。
  2. 我无法调用我的服务器:同样,我没有服务器,它是一个 GitHub 存储库。
  3. window.location.hostname脚本中的一个简单将得到我想要的,但它会在客户端得到它。我不知道是否可以将这些信息发回给我……实际上,我什至不知道这是否合法。

Von*_*onC 1

如果不解决法律方面的问题,您可以在您的脚本中嵌入PAT(个人访问密钥),这将使所述脚本能够进行 GitHub API 调用。

通常:“创建或更新文件(PUT /repos/:owner/:repo/contents/:path ”(我在这里提到过

您可以将专用用户/存储库中的文件内容替换为从脚本中获取的域名。
该文件的每个版本都代表脚本执行的一个实例,并在其中写入关联的域。

缺点是任何人都可以使用该密钥访问存储库,因此您需要仔细监控其内容和使用情况(同样,仅针对该用途使用专用用户帐户/存储库)。正如bk2204
下面所指出的,这太不安全了。

您可以采用与 GitHub Webhook 类似的工作流程来代替 PAT:您的脚本将使用 JSON 事件调用专用 URL,然后该事件将注册该调用。

  • 除了这是非常不安全的事实之外,如果您将此令牌签入存储库,GitHub 可能会使用其令牌扫描工具将其标记为受到损害。_并且_如果有人获得该令牌,该帐户可能会被用于滥用。 (3认同)