Hatena::ブログ(Diary)

hoshikuzu | star_dust の書斎 このページをアンテナに追加 RSSフィード Twitter

hoshikuzu|star_dustの日記について

書く内容の方針とかはフラフラしているのです。あまり考えていないかも知れません。面白いなぁと思うこと、大事なことだなぁと思うことを書いています。あんまり悲しいことは書かない主義。

 | 

2009-03-30

少々古いOperaでもinnerHTMLで何かを取得すると危うい 少々古いOperaでもinnerHTMLで何かを取得すると危ういを含むブックマーク 少々古いOperaでもinnerHTMLで何かを取得すると危ういのブックマークコメント

はせがわようすけさんによる連載の記事、『[これはひどい]IEの引用符の解釈』が面白かったので手元の少々古めのOpera(9.02ぐらい)で試すことにしました。

<div id="div1">
  <input type="text" value="ここに攻撃者の指定した文字列が挿入可能">
</div>
<div id="div2">
</div>
<script>
  document.getElementById( "div2" ).innerHTML =
    document.getElementById( "div1" ).innerHTML;
</script>

攻撃者の指定した文字列ですが、IEの場合には『``』などを含ませると結果的にDOM構造が壊れるとのこと、私が試した範囲ではOpera(9.02ぐらい)の場合には、『``』の替わりに『&quot;』を入れるとDOMが壊れてしまいました。なお現時点での最新版(9.64)ではこのような問題をみつけられませんでした。Operaサイドでは修正をしたのですね、IEもなおるといいなぁ。

2009/11/18追記: もう少し詳しい情報を、Opera9.27におけるinnerHTML取得時の引用符解釈の不備に書きました。

yamagata21yamagata21 2009/03/30 16:29 this["\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74"]("\x61\x6c\x65\x72\x74\x28\x29",500); (笑)

yamagata21yamagata21 2009/03/30 16:32 this["\x61\x6c\x65\x72\x74"](); //(ぇ

hoshikuzuhoshikuzu 2009/03/31 12:19 ぬははは。ありがとうございます。2番目の例はアレ?とか思いましたです。足し算したいからと。

トラックバック - http://d.hatena.ne.jp/hoshikuzu/20090330/p1
 | 
最近のコメント