【PR】 足裏健康法・樹液シート 【PR】 ADSL徹底導入術:乗り換えの方も始めての方も 【PR】 Bフレッツ対応プロバイダ徹底比較 【PR】 TOEICテスト新公式問題集〈Vol.4〉 |
||||||
予期しない文字コードでPOSTされるケースShift_JISで入力フォームを作成すれば、Shift_JISでデータが飛んでくるはず、というのはほとんどの方が思うことだと思います。EUC-JPで入力フォームを作成していれば、EUC-JPでデータはPOSTもしくはGETされると。ところが、そうとも言い切れないケースに出くわしたことがあります。もちろん、ユーザーがHTMLソースを、本来とは異なる文字コードで保存しPOSTしてくれば、予期しない文字コードのデータが飛んでくることになりますが、そんなことではなくてです。(想定外の文字コードで送信してくる攻撃については、「文字コードとセキュリティ」の章で説明します。) Mac版ネットスケープ4.7では、直前に訪問したホームページの文字コードをそのまま引きずってしまうというバグがあります。そのため、例えば、EUC-JPで作成した入力フォームから、外部のページ(Shift_JIS)へリンクしていると、そのリンクをユーザーがクリックしてそのShift_JISで作成されたページを訪問後、入力フォームのsubmitボタンをクリックすると、Shift_JISでPOSTされます。
<input type=radio name=sex value="男" checked> 男 <input type=radio name=sex value="女"> 女 というようなページを作成していた場合に、受け取った値を見てみると、男でも女でもない値がPOSTされていることがありうるという話(Shift_JISの「男」である「0x926a」や「女=0x8f97」がPOSTされる)です。妥当性チャックで、本来予定していた値以外のものがPOSTされたらエラーにしなければなりませんので、これはエラーになります。 Mac版ネットスケープ4.7でこのような不具合があることを知らなかった私は、ずいぶん悩みました。幸いなことに、自分でテストしている際に気がついたので、「攻撃かもしれない」などと余計なことは考えずに済んだということがありました。 対処策として考えられるのは、
次のページは、Windows版ネットスケープ4.Xで、右クリックを禁止すると、フォームの中で日本語入力が文字化けしまくる現象について考えます。
|