本当は原稿を書く予定だったんですが、隣に座った tokibito が IE6 の怖いコレ について教えてくれました。
おお!こないだ公開した My Trivia にもこのセキュリティホールあるし。早速直さないと。この OpenSocial アプリ ではユーザ入力の Trivia をサーバ側から json で返して、OpenSocial Canvas 側で表示しているのですが、とりあえず表示の時に document.createTextNode() してるから大丈夫だろうと思っていました。
しかしこういう時は < や > を下記のように処理してあげないといけないという事ですね。(この文脈では obj にユーザ入力文字が入ってます)
obj = obj.replace('<', r'\u003C')
obj = obj.replace('>', r'\u003E')
しかしこんな簡単な修正に 1h くらいかかってしまって情けない...
No comments:
Post a Comment