Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用.htaccess防止跨域javascript加载?_Javascript_.htaccess_Cross Domain - Fatal编程技术网

如何使用.htaccess防止跨域javascript加载?

如何使用.htaccess防止跨域javascript加载?,javascript,.htaccess,cross-domain,Javascript,.htaccess,Cross Domain,开发我网站的公司刚刚在Zend Guard encrypted index.php文件中添加了此javascript代码(我在“查看源代码”中看到): 它注入了一个非常强大的javascript代码,在页面底部向他们的网站添加了一个图像链接(每10秒设置一次间隔) 问题出在哪里?一家当地竞争对手,目前被指控犯有严重欺诈罪,拥有相同的CMS和相同的图像链接 与那个竞争对手有联系对我是有偏见的。我想知道是否有办法阻止使用.htaccess加载“www.domain.com/file.js” 谢谢。您

开发我网站的公司刚刚在Zend Guard encrypted index.php文件中添加了此javascript代码(我在“查看源代码”中看到):

它注入了一个非常强大的javascript代码,在页面底部向他们的网站添加了一个图像链接(每10秒设置一次间隔)

问题出在哪里?一家当地竞争对手,目前被指控犯有严重欺诈罪,拥有相同的CMS和相同的图像链接

与那个竞争对手有联系对我是有偏见的。我想知道是否有办法阻止使用.htaccess加载“www.domain.com/file.js”

谢谢。

您不能(使用htaccess)。此javascript创建一个脚本标记以加载外部javascript。该调用从未通过服务器。所以apache(htaccess)无法阻止这一点

最简单的方法是搜索源代码并删除脚本(如果您有访问权限)

更新:

我看到脚本被加密了。。。如果您可以在最开始(代码执行之前)插入一个脚本,那么您可以在insertBefore方法上创建一个钩子


​我同意这有点黑客行为,但至少它比计时器解决方案更干净。如果你不能删除它,就没有干净的解决方案。

你不能从代码中删除它吗?@Quentin:它不是重复的,因为没有人从我的服务器调用JS。@epascarello:代码被混淆了。我无法编辑它。@AsKaiser-那么你想阻止一个网站吗你无法控制从另一个你无法控制的网站加载JavaScript?谢天谢地,这是不可能的。@Quentin:这是我的网站。尽管index.php是模糊的,但我可以控制自定义JS文件和HTML的一部分。我添加了一个SetInterval函数,可以每秒删除标记。这很难看,但我没有其他方法还没有。
(function ()
{
    var smrs = document.createElement("script");
    smrs.type = "text/javascript";
    smrs.async = true;
    smrs.src = document.location.protocol + "//www.domain.com/file.js";
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(smrs, s);
})();
var ALLOWED_DOMAINS = ['www.klaartjedevoecht.be', 'jsfiddle.net'];
function creatHook(){
    function getDomain(url) {
       return url.match(/:\/\/(.[^/]+)/)[1];
    }
    var insertBefore = Element.prototype.insertBefore;
    Element.prototype.insertBefore = function(new_node,existing_node){
        if(new_node.tagName.toLowerCase() === 'script' && ALLOWED_DOMAINS.indexOf(getDomain(new_node.src)) > -1){
            insertBefore.call(this, new_node, existing_node);
        }
    }
}
creatHook();

//TESTING CODE:

var smrs = document.createElement("script");
    smrs.type = "text/javascript";
    smrs.async = true;
    smrs.src = document.location.protocol + "//www.klaartjedevoecht.be/test.js";

//var smrs = document.createElement("img");
//    smrs.src= "http://img52.imageshack.us/img52/7653/beaverl.gif";

var s = document.getElementsByTagName("div")[0];
    s.parentNode.insertBefore(smrs, s);