简单地说,我有一个带有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?
答案 0 :(得分:3)
坦率地说,不,不可能以某种方式模仿或保护您的脚本免受其他脚本在与您相同的上下文/范围中运行。但是你总是可以在iframe
中锁定第三方脚本 - 也就是说,除非你提供一个界面(例如社交网络经常使用它),否则它们将无法以任何方式与你的代码交互。