0

私のウェブサイトを開発した会社は、このjavascriptコードをZend Guard暗号化index.phpファイルに追加しました(「ソースの表示」で見ました):

(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);
})();

ページの下部に、非常に攻撃的なjavascriptコードを挿入して、Webサイトに画像リンクを追加します(10秒ごとにSetIntervalを使用)。

問題 ?現在重大な詐欺で告発されている地元の競合他社は、同じCMSと同じ画像リンクを持っています。

その競争相手と関係があることは私にとって不利です。「www.domain.com/file.js」の読み込みを.htaccessでブロックする方法があるかどうか知りたいのですが。

ありがとう。

4

1 に答える 1

2

できません(htaccessを使用)。この JavaScript は、外部 JavaScript をロードするスクリプト タグを作成します。呼び出しがサーバーを通過することはありません。したがって、apache (htaccess) はそれをブロックできません。

最も簡単な方法は、ソース コードを検索してスクリプトを削除することです (アクセスできる場合)。

アップデート:

スクリプトが暗号化されていることがわかります...最初にスクリプトを挿入できる場合(コードが実行される前に、insertBefore メソッドにフックを作成できます。これが機能するフィドルです)

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);

少しハッキングしていることには同意しますが、少なくともタイマー ソリューションよりはクリーンです。取り除けない場合、きれいな解決策はありません。

于 2012-12-14T14:28:26.317 に答える