- ホーム >
- MTエンジニアブログ >
- Movable Type 技術情報 >
- どこよりも早いMovableType4.23の差分を調べる会
どこよりも早いMovableType4.23の差分を調べる会
こんにちは。上西です。4.23(゚∀゚)キターということで、早速、前のバージョンとの差分を取ってみました。Let's diff!
今回はXSS(Cross Site Scripting)脆弱性への対応ということで、プログラム的な変更よりもテンプレートでの細かい変更が目立ちます。追加されたたくさんの escape="html" に涙がちょちょ切れそうになります。シックス・アパート株式会社の中皆さん、本当にお疲れ様でした。
- テンプレート中で、ユーザに入力を許す部分(ユーザ名やURL)の出力時にHTMLエスケープ指定が追加されている
- プログラム中で、フィールドに入力された文字でXSSで利用されうる文字をエラーとして扱うようになった
- 本体のスキーマバージョンの変化はなし
- MT::Util::remove_html のロジック変更
- テンプレートタグ中でも外部からの入力値を使用する際にエスケープを行っている
当初、MTの管理画面で入力されるフィールドは、システムにログインできる人間が使うだけだったこともあって、このあたりの作りこみが甘い傾向があります。コミュニティパックが公開されて以降、一般のビジタにもブログを与えることができるようになり、この管理画面の機能の一部が完全な第三者にも曝されるようになったわけです。そのため、悪意のある第三者によって、フィールドにシステム管理者の意図しないような値を入力されると、これらの部分が脆弱性として現れやすいようです。前回のHack-a-thonでもそのような裏話がありました。ざっとみた感じでは網羅的にHTMLエスケープが施されているようですが、プログラムがこれだけ巨大化してしまった今、もしかしたら、またすぐに4.24が出ちゃうかもしれませんね!?(泣)
投稿者 ぴろり上西 : 12/03
新着記事
- [2011-06-02]PageBute プラグインで一つのブログ記事を複数ページに分割する
- [2011-05-28]変数名の罠
- [2011-05-27]プラグイン周りについて ~ プラグインのロード順
- [2011-05-25]プラグイン周りについて ~ プラグインセット
- [2011-05-13]データベースのアップグレードに失敗する時は
























最初から変数出力がエスケープされる動作を
デフォルトにしてればよかったのになーと思います。
HTML::Templateだとdefault_escapeつけとけばいいですが