프레임에서 부모 개체 (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>