airheadの日記: memo: スタイル指定に忍びこむ、Firefox殺しの文字列
HTMLのスタイル指定(style要素の内容、style属性値、あるいは外部スタイルシートの内容)に不正な記述があると、Firefoxがクラッシュする。
確認された環境
Windows2000 + Firefox でクラッシュする。Windows2000 + IE, Mozilla, Operaでは発生しない。他のプラットフォーム上については不明。
原因となる記述
「半角ハイフンに続けて全角英数記号など」。HTMLやCSSのエンコードの種別は問わない。
半角ハイフンに続くのが「全角英数記号」「半角カナ」の場合、クラッシュする。
例:「-A」「-a」「-1」「-#」「-¥」「-ア」- ただし問題となる記述の、直前の文字種などによってはクラッシュしない場合がある。
-
直前の文字が「半角記号」の場合はクラッシュする。
例:「{-color」「;-color」「--color」 -
直前の文字が「半角英数」「全角英数記号」の場合はクラッシュしない。
例:「background-color」「background-color」 -
原因となる記述が、「/*」と「*/」で囲うcssのコメントの内にあったり、コメントの内と外に分かれていたり、コメントで区切られている場合にはクラッシュしない。
例:「 /* -a */ 」「 /* - */a 」「 -/* */a 」
-
半角ハイフンに続くのが「全角空白」「全角仮名」「漢字」「キリル文字」「ギリシャ文字」の場合、クラッシュしない。
例:「- 」「-あ」「-ア」「-亜」「-Я」「-α」
追記
まあこういう文字列がそんなとこに紛れ込むことは滅多にない、とは思いますけどね。日本語のフォント名を指定しようとしてIMEをONにし、そのまま問題となる記述をしてしまうという可能性もないとはいえない...かな。bugzillaに投稿すべきでしょうか。
ちょっと書き直しました。面倒くさいので文字種の表記に「半角/全角」を使いましたが、この際たいした問題じゃない...ですよね、はは。
memo: スタイル指定に忍びこむ、Firefox殺しの文字列 More ログイン