水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 2004年のえび日記 > 2004年4月 > 2004年4月8日(木曜日)

2004年4月8日(木曜日)

CultureInfo.InvariantCulture

先週の記事ですが、「【レポート】セキュアなコードの書き方 - セキュアな設計が最も重要 (MYCOM PC WEB) (pcweb.mycom.co.jp)」という話が興味深く。

トルコ語では通常のASCII文字の「I/i」の他に、ı(U+0131)・İ(U+0130)という2つの文字が存在するため、例えば「file://」で始まるURLを排除しようとする場合はこれらの文字による表記の可能性も検査しないと、トルコ語の入力環境がある場合には検査を突破されてしまう可能性がある。このため、.NET環境なら通常のToUpperメソッドを使う代わりに「ToUpper(CULTURE_INVARIANT)」を使うなどして、言語に依存しない形での検査を行わねばならない、とその難しさを語った。

以上、MYCOM PC WEBの【レポート】セキュアなコードの書き方 - セキュアな設計が最も重要 より

18へぇ。ToUpper() ではなくて ToUpper(CultureInfo.InvariantCulture) を使えと。

同様に String.Compare(string, string, bool) も String.Compare(string, string, bool, CultureInfo) にして CultureInfo.InvariantCulture を渡すようにした方が良かったりするのかしら。

※ちなみに現在、hatomaru.dll ではカルチャについてはなーんにも考えていません。

関連する話題: プログラミング / C# / セキュリティ

最近の日記

関わった本など