不正遷移 対策 PHP

残念ながら私は毎日業務でプログラムを書いているわけではないので、色々やっているうちに忘れてしまう危険があります・・・!!そんなわけで、プログラム系もぼちぼち記事にしていこうと思います。

 

A(手続き)ページ → B(処理完了)ページという想定した正規のフローで進んで欲しいWEBページがあります。

ブラウザからBページのURLを叩けば当然アクセス出来ます。何も特別なことを行っていないのですから。しかし、通常の一般ユーザの想定している振る舞いからはありえないことです。そんなわけで、今回は不正遷移としてエラーを出すチップスの御紹介です。

 

セッションで対策を行います。

Aページ 手続きページ

セッションとPostデータの有無で判定

  1. Aページに$_SESSION[‘kerberos_flag’]に1を入れておき、Bページに移動した時にその値を持っているか。
  2. Postデータを持っているか。

2点の判定で通常のページ遷移かどうかを判定します。

 

Bページ 処理完了ページ

 

ここで判定していますよ!

$_SESSION[‘kerberos_flag’]にきちんとフラグデータがあるか、必須項目データの1つemailのPostがなければそこでエラーメッセージを表示させて、exit()で処理を完全に止めます。これでBページの直接アクセスした場合の対策が出来ました。

Aページからのフラグを持っている通常フローを行っているユーザに対しては、セッションとCookieを削除して通常の表示に進みます。

 

 

この仕様の問題点

Chrome Cookie

 

Cookieを有効化していないブラウザではアクセス出来なくなることです。通常のデフォルトでは有効になっているはずなので、問題にはなりませんが、無効化しているユーザも全くいないわけでもないので、有効化にする方法のアナウンスが必要です。

*画像はChromeブラウザ

 

不正遷移 対策 PHP

不正遷移エラーページでCookieの有効化をアナウンスを行っています。

お疲れ様です。

 

 

金広 優 (エンジニア)
この記事を書いた人:金広 優 (エンジニア)

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM SoftLayerやAWSなどクラウド案件も多くなってきました。