2

简而言之,我有一个带有 Javascript 库的网站,其中包含通过脚本标记的广告。现在我担心实施的广告可以访问我的 Javascript 库(也包括通过脚本标记),该库执行 Ajax 调用服务器(用户在该服务器上进行会话)。

我希望保护我的 Javascript 免受广告中包含的 Javascript 的影响,因为我不希望广告公司能够进行 Ajax 调用。在这样做时,我不想依赖我的 Javascript 库之外的服务器端脚本(请注意,对库的调用不能有服务器端脚本)(尽管可以设置 htpasswd 即)。

一个例子是:

Library.js(可以有服务器端脚本,另一个域)

var library = function(parameters) {
      return ajaxCallWithParameters(parameters);
}

网站 Javascript:(不能依赖服务器端脚本)

toTable(library());

包括可能的恶意广告:(其他域)

sendToAdServer(library());

在使用服务器端脚本的情况下,我可以简单地做:

   <script>var <?php echo $somehowSyncedrandomByTime; ?> = function(parameters) {
          return ajaxCallWithParameters(parameters);
    }</script> <!-- included JS script of other domain which supplies AJAX -->

    <script>toTable(<?php echo $somehowSyncedrandomByTime; ?>());</script> <!-- current domain -->

    <script>sendToAdServer(???());</script> <!-- by including offsite ad script -->

这样,广告就无法找到有问题的功能。但是该网站不能包含服务器端脚本,所以我正在寻找替代方案。

是否有可能以包含来自第三方的 Javascript 无法调用/读取它的方式隐藏我的 Javascript?

4

1 回答 1

3

坦率地说,不,不可能以某种方式掩盖或保护您的脚本免受与您在相同上下文/范围内运行的其他脚本的影响。但是你总是有可能将第三方脚本锁定在一个iframe- 即,除非你提供一个接口(例如社交网络经常使用它),否则它们将无法以任何方式与你的代码交互。

于 2013-11-05T10:05:36.183 回答