タグ

2009年9月14日のブックマーク (5件)

  • 第9回■上流工程で文字集合仕様と文字エンコーディングを決定する

    これらの対策のうち,ここでは「文字集合の変換を伴う変換をしない」など,アプリケーション全体の文字コードの取り扱いについて上流工程で留意すべき内容について説明しよう。「入力値のチェック」については次回以降,「入力値の検証」の項で詳しく説明する。「アプリケーションでの正しいマルチバイト文字の処理」については,個別の処理内容の項で説明する。 文字コードの取り扱いについて,上流工程で留意すべき点としては,次の三つが挙げられる。 要求仕様として文字集合を定義する端末がサポートする文字集合を確認する実装に用いる文字エンコーディングを決定する まずアプリケーション仕様として,処理対象となる文字集合を規定する必要がある。日英語以外の韓国語や中国語,アラビア語などの対応が必要な場合はUnicodeを選択するしかない。さらに日語だけの場合でも,例えばJIS X 0201+JIS X 0208はJIS第2水準

    第9回■上流工程で文字集合仕様と文字エンコーディングを決定する
    wacky
    wacky 2009/09/14
    文字コードのセキュリティ問題と対策(5/5)。文字コードの取り扱いについて上流工程で留意すべき点。文字エンコーディングに関する現実的な実装パターン。
  • 第8回■主要言語の文字エンコーディングの対応状況を押さえる

    文字コードの問題に正しく対応する前提として,アプリケーションが稼働する基盤ソフトウエアがマルチバイト文字列処理に対応している必要がある。特に問題となるのが,言語処理系とデータベース管理システム(DBMS)である。利用者の使い方が正しくない場合も,ぜい弱性が混入することがある。このため,今回は主要言語とデータベース(MySQLとMS SQL Server)のマルチバイト文字対応状況について説明する。 文字列の処理単位は文字単位かバイト単位か Webアプリケーション開発で人気のあるスクリプト言語の多くは,かつては文字列をバイト単位で扱っているものが多かった。以下のPerlスクリプトは“漢字”という文字列の長さを表示するものだが,ソースの文字エンコーディングによって結果が変わる。具体的には,Shift_JISやEUC-JPの場合は4,UTF-8の場合は6と表示される。原因は,このスクリプトが文字

    第8回■主要言語の文字エンコーディングの対応状況を押さえる
    wacky
    wacky 2009/09/14
    文字コードのセキュリティ問題と対策(4/5)。主要言語(PHP、Perl、Ruby、Java、.NET)とデータベース(MySQL、MSSQL)のマルチバイト文字対応状況と望ましい文字エンコーディング。
  • 第7回■文字エンコーディングが生み出すぜい弱性を知る

    文字コードに関する問題は大別すると文字集合の問題と文字エンコーディングの問題に分類できる。前回は文字集合の取り扱いに起因するぜい弱性について説明したので、今回は文字エンコーディングに起因するぜい弱性について説明しよう。 文字エンコーディングに依存する問題をさらに分類すると2種類ある。(1)文字エンコーディングとして不正なデータを用いると攻撃が成立してしまう点と,(2)文字エンコーディングの処理が不十分なためにぜい弱性が生じることがある点だ。 不正な文字エンコーディング(1)――冗長なUTF-8符号化問題 まず,(1)の不正な文字エンコーディングの代表として,冗長なUTF-8符号化問題から説明しよう。前々回に解説したUTF-8のビット・パターン(表1に再掲)を見ると,コード・ポイントの範囲ごとにビット・パターンが割り当てられているが,ビット・パターン上は,より多くのバイト数を使っても同じコー

    第7回■文字エンコーディングが生み出すぜい弱性を知る
    wacky
    wacky 2009/09/14
    文字コードのセキュリティ問題と対策(3/5)。文字エンコーディングに依存する問題。「冗長なUTF-8符号化問題」、「半端な先行バイトによるXSS」、「UTF-7によるXSS」、「5C問題によるSQLインジェクション」。
  • 第6回■異なる文字集合への変換がぜい弱性につながる

    文字集合自体は抽象的な「文字の集まり」に過ぎないので単独で問題になることはないが,異なる文字集合に変換する際には問題が発生する場合がある。文字集合が異なるということは,対応する文字が1対1対応していないので,変換先の文字集合で対応する文字がないケースや,多対1の対応が発生する可能性がある。 図1に,Unicodeからマイクロソフト標準キャラクタセットに変換する場合を例示した。マイクロソフト標準キャラクタセットには「骶」(尾てい骨の“てい”)や,ハングルなどはない。また,バックスラッシュ「\」(U+005C)と円記号「\」(U+00A5)がともにJIS X 0201の「\」(0x5C)に変換される場合について示している。 「漢」のように1対1対応している文字は問題ない。ハングルや「骶」のように対応するコードポイントがない場合はエラーになるか文字化けする。インターネットで「尾 骨 びていこつ」

    第6回■異なる文字集合への変換がぜい弱性につながる
    wacky
    wacky 2009/09/14
    文字コードのセキュリティ問題と対策(2/5)。文字集合の変換で発生する問題。「Unicodeからの多対一の変換」。
  • 第5回■注目される文字コードのセキュリティ問題

    今回から5回にわたって,アプリケーション全体に関する文字コードの問題と対策について説明する。文字コードがセキュリティとどう関わるのか,疑問に思うかもしれないが,Webアプリケーションで文字コードを指定可能な個所は非常に多く,しかも文字コードの選定や処理方法次第ではぜい弱性の原因になることが分かってきている(図1)。実は文字コードはWebアプリケーションのセキュリティ問題の最新の話題と言ってよい。 2008年10月に開催されたセキュリティ・イベントBlack Hat Japan 2008では,ネットエージェントの長谷川陽介氏が「趣味と実益の文字コード攻撃」と題して,文字コード問題の広範なプレゼンテーションを発表した 。そのプレゼンテーション資料が発表されている のでこの問題の詳細に関心のある方は参照されたい。ここでは,セキュアなWebアプリケーションを開発するために文字コードの問題をどのよう

    第5回■注目される文字コードのセキュリティ問題
    wacky
    wacky 2009/09/14
    文字コードのセキュリティ問題と対策(1/5)。基本用語となる「文字集合」と「文字エンコーディング」の解説。