January 31, 2009

Python旅館第一回

最近やる気が無かったのですが Python旅館に来たら嘘のようにやる気が復活しました。

本当は原稿を書く予定だったんですが、隣に座った tokibitoIE6 の怖いコレ について教えてくれました。

おお!こないだ公開した My Trivia にもこのセキュリティホールあるし。早速直さないと。この OpenSocial アプリ ではユーザ入力の Trivia をサーバ側から json で返して、OpenSocial Canvas 側で表示しているのですが、とりあえず表示の時に document.createTextNode() してるから大丈夫だろうと思っていました。

しかしこういう時は < や > を下記のように処理してあげないといけないという事ですね。(この文脈では obj にユーザ入力文字が入ってます)


obj = obj.replace('<', r'\u003C')
obj = obj.replace('>', r'\u003E')


しかしこんな簡単な修正に 1h くらいかかってしまって情けない...

No comments: