やってはいけない、不正遷移対策
最近は少なくなりましたが、以前はトランザクション領域で「戻る」ボタンを押すと「白い画面」になるWebアプリケーションが多く存在しました。これは、まだ不正遷移対策の仕組みが普及していなかったため、トランザクション領域のページを出力する際に、HTTPヘッダにページの有効期限(Expires)を設定することで、キャッシュを無効にし「戻る」ボタンの利用を防いでいたわけですが、一般ユーザーはエラーの意味が分からず、とても不評な対策でした。
IEのキャッシュ制御について書かれています。ただし、FireFoxやOpera、同じIEでもバージョンによって挙動が異なるため、不正遷移対策として確実な方法ではありません。
不正遷移対策5つのポイントまとめ
ポイントをまとめます。
- ページの種類によって、フリー領域とトランザクション領域に分類します。
- それぞれの領域でのページ間と、領域をまたがるページ間で行うべきチェックを決めます(不正遷移チェック、ログイン済みチェックなど)。
- トランザクション領域では、不正遷移対策を行います。
- 不正遷移対策はクライアント側とサーバ側の両方で行います。クライアント側のチェックに頼ってはいけません。
- 不正遷移対策は、「リクエストごとにユニークな文字列」を生成し、次のリクエストのタイミングでセッションと比較することで行います。
最後に
最近はフレームワークの利用が進み、Web開発が楽になりましたが、サーブレットを直接作る機会が少なくなったため、ブラウザの挙動やHTTPに対する開発者の理解度が下がってしまいました。道具に振り回されずに道具を使うためには、まず道具を理解しましょう。
