IEばなし。自室にある古いほうのパソコンにとっておいてあるIE6で。以下は作動しないのに


<script>
location(name);
</script>:
配列につっこんでやって以下のとおりだと作動する。【真に謎】たぶんIE8でも同様。

<script>
[location(name)];
</script>
※なお、window.nameには別途、'javascript:alert("XSS")'などを設定しておきます。

…ええと。


'foo'+{"toString":location(name)}
あたりでnameに入っているjavascript擬似スキームを含むURIがlocationメソッド【謎】に引き渡されるという変な感じをみていてなのですが。最初、私はこう思ったのですよね。window.location だけは関数(メソッド)として動かんようにガードかけているのかな?ほかなら大丈夫なのかな?
とか思っていたら配列の中でも生きているのですか、そうですか、こりゃ私には無理。というストーリーです、ちゃんちゃん。
きっとid:hasegawayosukeさんが解明してくれます!