
はじめまして、お世話になります。
現在PHPで制作を行っています。
早速質問したいのですが
例えば
ページ1(サーバーA)「idとpassword入力画面」
ページ2(サーバーB)「ここにあるid&passwordで認証しokならページ3に進む」
ページ3(サーバーA)「ログイン成功画面」
この状況において
ページ3の生のURLを直接打ち込んだでは閲覧できないようにして、ページ2経由でのみページ3を閲覧できるようにするにはどのようにすればよいでしょうか?
条件は
ページ1で入力したidの値をページ3まで渡すということです。
セッションやクッキーはだめでした。
現在、ページ3ではURLが
http://サーバーA/3.php?id=○○○○となっているため
○○○○の部分を変えれば他のidでログインできてしまいます。
$_GET['id']で一応、値は取れています。
初心者でどうすればいいのかさっぱりです。
どなたか教えていただけませんか?
No.4ベストアンサー
- 回答日時:
サーバBに認証用の隠しページ(のようなもの)を作ってはどうでしょうか。
フォーム入力->内部でサーバBに問い合わせ→ログイン成功
$result = file_get_contents('http://serverB/api_auth.php?id=a&pass=b');
あとはログイン済みの情報をクッキーなりセッションで保持して。
セキュリティが不安ならPOSTに変えたり、idとpassを暗号化して送るとか。
No.3
- 回答日時:
ページ1,2で使っているフォーム部分をGETからPOSTに変更すればURLにIDは表示されなくなります。
合わせて$_GETも$_POSTに変えましょう。
No.1
- 回答日時:
がると申します。
おっしゃっている内容は、普通「セッションで」実現可能かと思います。
まぁ確かに、PHPのセッション関数群は基本的に穴が多いのでセキュアにするのは大変なのですが。
そのレベルの精度を出そうとするのであれば、失礼ながら「初心者で」というレベルの方に教えるには相応の労力がかかってしまいます。
ですので、まずは一般的な「セッション関数群」か、或いはPEARのPEAR::Authあたりの使い方をきちんと学ばれる事をお勧めいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
二重ログイン管理について
-
セッション変数にパスワードを...
-
ログイン画面をはさんだ後、自...
-
ログインしたら他からログイン...
-
POSTで情報を他のサーバーに渡...
-
特定のセッション変数の内容だ...
-
別ブラウザ間でセッションの値...
-
PHPのプロセス滞留について
-
PHPSESSIDの表示
-
複数のサーバで運営する場合の...
-
テーブルデータをSESSIONに保存...
-
完全なセッション破棄をしたい
-
特定のページからのみのアクセス
-
SESSION情報は、ブラウザを起動...
-
【C#】DataGridViewの最大列数...
-
Dosブロンプトでtabを出力したい
-
「取得先」という表現について
-
switch()文で値の大小比較
-
ファイル名に日付の挿入
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
ログインしたら他からログイン...
-
Sessionの上限について
-
別ブラウザ間でセッションの値...
-
ブラウザを閉じた後もセッショ...
-
PHP SESSION変数を複数使用でき...
-
ログイン画面をはさんだ後、自...
-
PHPのプロセス滞留について
-
セッションのスコープ(有効範...
-
セッションファイルの有効期限...
-
セッション変数にパスワードを...
-
完全なセッション破棄をしたい
-
SESSIONの削除について
-
PHPのセッション有効期限について
-
共有SSLでのセッションの引継ぎ
-
PHP cookieの値が更新されない...
-
携帯電話対応のカートって??
-
セッションを維持したまま、サ...
-
PHPSESSIDの表示
-
ログイン 作成
おすすめ情報