水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 2バイト目を食ってしまう

2バイト目を食ってしまう

2006年2月14日(火曜日)

2バイト目を食ってしまう

PHP 利用時に Shift_JIS で addslashes() によるエスケープ処理に SQL インジェクション可能な穴 (d.hatena.ne.jp)」。興味深いです。

内部処理が Shift_JIS の場合、2バイト文字の 1バイト目に相当するビット列を入れてやると、その直後の文字が食われてしまう場合があるという話ですね。たとえば、シングルクォート (0x27) の頭にバックスラッシュ (0x5c) をつけるというエスケープ処理が行われている場合、0x83 0x27 というビット列が送られると 0x27 の前に 0x5c がつけられて、0x83 0x5c 0x27 となるわけですが、0x835c は Shift_JIS の「ソ」なので、「ソ'」となってシングルクォートがそのままイキになってしまいます。

※「ポータル墓場 [01363] Re: XSS (rryu.sakura.ne.jp)」で既出の話ではありますが。

関連する話題: セキュリティ

最近の日記

関わった本など

インクルーシブHTML+CSS & JavaScript 多様なユーザーニーズに応えるフロントエンドデザインパターンデザイニングWebアクセシビリティ - アクセシブルな設計やコンテンツ制作のアプローチコーディングWebアクセシビリティ - WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践ウェブの仕事力が上がる標準ガイドブック 5 WebプログラミングWeb Site Expert #13Dreamweaver プロフェッショナル・スタイル [CS3対応] (Style for professional)友井町バスターズ (富士見ファンタジア文庫)

その他サイト