2011-07-17 4 views
0

프레임에서 부모 개체 (XSS로 인해 액세스 할 수없는 정보)로 일부 정보를 버블 링하려고합니다.postMessage의 소스 창을 내 window.frames와 비교할 수 있습니까?

postMessage을 통해 전송 된 source 창이 window.frames의 값과 비교할 수 있습니까?

MDN (위의 링크에서)은 메시지가 postMessage으로 다시 사용될 수 있지만 동등성 테스트를 의미하지는 않는다고 말합니다.

IE9 FF5 및 Chrome12에서 제대로 작동하지만 신뢰할 수 있는지 (예 : 표준인지) 알고 싶습니다.

시험 번호 :

postMessageOuter.html

<!DOCTYPE html> 
<html> 
<head> 
    <title>Outer Page</title> 
    <script type="text/javascript"> 
     window.addEventListener("message", function (event) { 
      for (var i = 0; i < frames.length; ++i) 
       if (event.source == frames[i]) 
        alert(i); 
     }, false); 
    </script> 
</head> 
<body> 
<iframe src="postMessageInner.html"></iframe> 
<iframe src="postMessageInner.html"></iframe> 
<iframe src="postMessageInner.html"></iframe> 
</body> 
</html> 

postMessageInner.html

<!DOCTYPE html> 
<html> 
<head> 
    <title>Inner Page</title> 
    <script type="text/javascript"> 
     function foo() { 
      window.parent.postMessage("Hello", "*"); 
     } 
    </script> 
</head> 
<body> 
<input type="button" value="X" onclick="foo()" />  
</body> 
</html> 

답변