ホームページ  >  記事  >  バックエンド開発  >  Iframe がドメイン間で Cookie とセッションにアクセスする方法に関する解決策_PHP チュートリアル

Iframe がドメイン間で Cookie とセッションにアクセスする方法に関する解決策_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:11:47790ブラウズ

最近ログイン システムを統合する際に発生した最も重大な問題の 1 つは、統合されたバックエンドで別のシステム バックエンドにアクセスする必要があることです。このシステムはサードパーティによって提供される暗号化システムであり、バックエンドは自動的にログイン インターフェイスを分析します。自動ログイン インターフェイスを介して統合バックエンドからログインする場合、システムはバックエンド ログインの成功後にジャンプする URL をここで指定することはできません。統合バックエンドのページを、バックエンドのデフォルトのホームページ以外のシステム バックエンドの別のページにリンクする必要がある場合、つまり、サードパーティ システム バックエンドのメニュー機能が統合バックエンドに配置されます。

そのような必要がある場合、通常、サードパーティ システムのバックエンド列にアクセスするには、システムにログインしていることを確認する必要があります。そうしないと、ユーザーはログインするよう求められます。したがって、これらのメニュー リンクをクリックするときは、システムにログインする必要があります。

この問題を解決するために、自動ログイン インターフェイスを指す非表示の iframe がページの先頭に追加されます。このインターフェイスがブラウザのアドレス バーから通常どおりアクセスされる場合、ユーザー名とパスワードが正しく検証されると、システムにジャンプします。この時点では、背景のホームページは非表示の IFRAME に配置されるため、ジャンプは現在の背景ページには影響しません。私の設計方法によれば、システムは正常に使用できるはずです。

しかし、しかしと述べたということは、問題に遭遇したに違いなく、そうでなければここでこれほど大きな転換点は起こらなかったでしょう。

ただし、ここでの各システムは異なるシステムに属し、異なるドメイン名を持っているため、IE では Iframe がサードパーティ システム Cookie を正常に生成できない状況がありますが、Firefox やその他のブラウザでは生成できるため、IE を使用してくださいアクセスすると、常にログインページにジャンプします。

ここで説明する必要があるのは、ここでのサードパーティ システムは独自のサーバー上に配置されていますが、すべてのソース コードは暗号化されているということです。

最後に、関連情報を確認したところ、IE では、セキュリティ上の理由から、この問題を解決するために、P3P に限り、サードパーティ ドメインの COOKIE の生成がブロックされていることがわかりました。 header が HTTP HEADER ヘッダーに設定されている場合、サードパーティ COOKIE は IFRAME を通じて生成されます。

PHPにおけるP3P HEADERヘッダーの設定方法は以下の通りです。

header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘);

注: ここでの P3P を有効にするには、サードパーティ ドメインで Cookie を生成するファイルに追加する必要があります。追加しないと役に立ちません。

ここで別の問題があります。サードパーティのシステムによって生成された COOKIE はバックグラウンドで admin.php というページで生成され、このページは暗号化されています。同僚がついにアイデアを思いつき、それを自分たちのファイルに含めることができると言いました。くそー、この方法はとても素晴らしいです、なぜ私はそれを思いつかなかったのですか? 私の同僚はとても才能があり、もちろん私は彼をとても尊敬していました、と彼はその夜自分自身を賞賛しました。

最終的な解決策は、元の admin.php ファイルに admin_2.php という名前を付け、新しい admin.php を作成します。最後に、このファイルに上記の P3P HEADER ヘッダーを追加し、admin_2.php ファイルを再度インクルードします。最終的なコードは次のとおりです:

header('P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”');

include “admin_2.php”;

ついに、問題は完全に解決されました!

ここでのタイトルは COOKIE と SESSION の問題についてです。本質的には、SEESION の最終的な保存も SESSION_ID を通じて COOKIE ソース コードに保存され、対応する SEESION データが見つかります。 SEESION_ID COOKIE を削除すると、SESSION が無効になります。

http://www.bkjia.com/PHPjc/326846.html

tru​​ehttp://www.bkjia.com/PHPjc/326846.html技術記事最近、ログイン システムの統合中に遭遇した最も重大な問題の 1 つは、統合されたバックグラウンドで別のシステムのバックグラウンドへのバリアフリー アクセスの必要性でした。このシステムはサードパーティによって提供されています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。