SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Web開発者の必須知識、Webアプリの不正遷移対策とは?

Webアプリケーションにおける不正遷移の種類と対策を紹介

  • このエントリーをはてなブックマークに追加

Webアプリケーションでは、想定外のページ遷移が頻繁に発生します。これを「不正遷移」と呼びます。本稿では、この不正遷移の種類とその対策を解説します。

  • このエントリーをはてなブックマークに追加

はじめに

 Webアプリケーションは、ブラウザ上で動作するという制約から、想定外のページ遷移が頻繁に発生します。これを「不正遷移」と呼びます。不正遷移とその制御を理解することが、Webアプリ開発者には不可欠です。

 本稿では、不正遷移の種類とその対策を紹介します。

おことわり
 本稿で使われている用語は、一般的なものとは限りません。また、紹介している対策以外にもさまざまな対策方法があります。

対象読者

  • Webアプリの設計に携わる方、もしくは興味のある方。

不正遷移の定義と種類

 不正遷移とは「Webアプリケーションの設計上、業務的に想定されていないページ間の移動」を定義することができます。具体的には、次の種類があります。

  1. アプリケーション内のブックマークされることを想定していないページをブックマークに登録し、後でブックマークから呼び出すこと。もしくはURLを直接入力して表示すること。
  2. ブラウザの「戻る」「進む」ボタンを押して移動すること。
  3. ブラウザの「更新」ボタンを押すこと。
  4. アプリケーションのボタンやリンクを連打すること。
  5. ※正式な呼称ではありませんが、1を「飛び込み」、4を「2度押し」などと呼びます。

 例えば1.は「ユーザー情報画面」や「発注確認画面」をブックマークされた場合です。ログインしていない状態でユーザー情報画面に飛び込まれても個人情報を表示することはできませんし、既に発注が終わった注文の確認画面を表示してはいけません。

 2.の「戻る」「進む」ボタンを押した場合、ブラウザはサーバから最新ページを取得せずに、ローカルのキャッシュから「同じURLのデータ」を取得します。URLは同じでも内容が異なるページがあると、ユーザーの予期していないページを表示する可能性がありますし、常に最新の情報が表示されなければならないページにも関わらずキャッシュ内の古いデータが表示される可能性があります。

 3.の「更新」ボタンを押した場合、ブラウザは「そのページを表示する際に行ったリクエストを、再度サーバに投げる」という動作を行います。この操作を「発注結果画面」で実行すると、不正遷移対策を行わなければ二重発注してしまう危険があります。

 4.3.と似ており、「発注確認画面」の発注ボタンを連打することにより、二重もしくはN重の発注をしてしまう危険があります。また、サーバに余計な負荷をかけることになります。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
不正遷移対策を行う領域

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

佐藤 龍之介(サトウ リュウノスケ)

某SIer にて、主にWeb系開発プロジェクトに従事。 趣味はラーメン食べ歩き。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2627 2008/08/15 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング