No.082 | 投稿日時: | 2003/07/27(日) 16:43 <親記事> |
投稿者: | 森山 将之 |
たかはしもとのぶ さん の だめだめ日記
http://damedame.monyo.com/?date=20030726#p01
で紹介されていた、サイトを見ていたら次のようなページをみつけました。
[文字コードとセキュリティ]
http://www.shtml.jp/mojibake/security.html
文字コード処理でセキュリティの事を考えるべきという点を指摘している点は
なかなか良いと感じました。
ただ、HTML タグの無効化だけを取り上げているのは、ちょっと物足りないかな
という気はしています。
UTF-8 をそのまま処理する場合は、通常の HTML タグの無効化だけでは不十分
なので、きちんと RFC 2279 の "6. Security Considerations" を読むなりし
て、どのような危険性があるのか知っておくべきと思います。
当サイトに設置してある UTF-8 の掲示板では、UTF-8 で使用してはいけない
ビット組み合わせ (ASCII 文字の 2 バイト以上の表現等) は、HTML タグの
無効化する前に弾いています。
http://www2d.biglobe.ne.jp/~msyk/cgi-bin/utf8bbs/sylpheed.cgi?c=gr&n=20
また、UTF-8 の掲示板では UTF-8 以外は受け付けないようにし、ここを含め
た他の掲示板で受け付ける文字コードは ISO-2022-JP, Shift_JIS, EUC-JP
に限定してあります。
あと、ISO-2022-JP, Shift_JIS, EUC-JP に関しても、エンコードとして無効
なバイトシーケンスを弾く (その場合、具体的な処理方法は、エンコードと
して正しいバイトシーケンスのみを通すという処理にすべきでしょう) など
の処理を施す事で、文字化けを悪用するような攻撃を未然に防ぐようにして
おいた方がいいでしょうね。
この辺の事は外国で取り上げられないので、問題が無いと考えられがちです
が、1 バイト文字コード以上にマルチバイト文字コードは、処理が複雑化す
る分、危険性も潜んでいると考えておくべきと思っています。