店舗さん向けのサイトに新しいコンテンツを追加することになり、どうせやるのなら「ブログ」が良いということで用意した。
追加したコンテンツについては「MT」を使うためレンタルサーバに設置。
レンタルサーバに設置するとしても会員向けのページのため、なんらかのアクセス制限を掛けたい。
ということで、ブログの各ページの先頭で「リファラ」をチェックするようにして、メインのページからとブログ内遷移のみOKとした。
店舗さん向けのサイトのテストサーバを使っているうちは全て快調であったが…
さて、新コンテンツのリリース当日の朝、本チャンサーバのページを入れ替え、メインのページから「ブログ」へのアクセスを可能にした…
これで終わるハズだった今回のお仕事。
ところが、なぜか正しいページから来ていないことになり「不正アクセス」となってしまう。
テストサーバからアクセスしてみると何も問題ない。なんでじゃ~冷や汗タラリ。
もしかしたら「http」と「https」の違い?
冷静に考えてみれば当たり前の結果か。
それにしてもどう対処すればいいのか分からん。気持ちばかりが焦る中、時間は刻々と過ぎていく。
タイムリミットまで10分。
うーん、うーん、うーん、あまり効果は無いが無いよりマシレベルでメインページからパラメータ付きでブログのページを呼び出すことにした。
パラメータの中にIDを含めて、それっぽくセキュリティチェックをしているような雰囲気を漂わせ、ブログ側でそれをチェック。
これで暫く時間稼ぎして根本的な解決をしなくては。
まずはパラメータ付きで呼び出す
(例) http://aaaaaa.aaaa.jp/blog1.php?id=1234&mode=5678
ブログ側の先頭でパラメータのチェックをして正しければ
(例) header(“Location: http://aaaaaa.aaaa.jp/blog1.php”);
でジャンプさせる。
2度目はパラメータがない替わりにリファラがあるハズ。
と思ったのだが、自分自身を呼び出しているのにリファラが付いてこない。
次にやってみた方法
ブログ側にダミーのページを置いて、メインのページからパラメータ付きでダミーページを呼び出す。
(例) http://aaaaaa.aaaa.jp/blog0.php?id=1234&mode=5678
ダミーページ側でパラメータをチェックして正しければブログのページへジャンプする。
(例) header(“Location: http://aaaaaa.aaaa.jp/blog1.php”);
と、やってみたがリファラを拾うことができなかった。
もしかしたら
header(“Location:
ってリファラが付かない?
ネット検索してみたところ、探究されたページが見つかった。
「リファラ実験」
http://www.teria.com/~koseki/memo/referrer/
どうやら無駄な抵抗をしていたようだ。
追記.
結局のところ根本的な解決策がないため、オリジナル「ワンタイムパスワード」を発行させることにした。