ホームページ  >  記事  >  バックエンド開発  >  http//www.phprecord.com_PHP へのクロスドメイン Cookie 転送の実装チュートリアル

http//www.phprecord.com_PHP へのクロスドメイン Cookie 転送の実装チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:28:22966ブラウズ

著者: Christopher Kings-Lynne 翻訳: limodou Cookie は本当に素晴らしい発明で、Web 開発者はユーザーのログイン状態を保持できます。ただし、サイトまたはネットワークに複数のドメイン名がある場合、問題が発生する可能性があります。 Cookie の仕様によれば、Cookie は 1 つのドメイン名に対してのみ使用でき、他のドメイン名に送信することはできません。したがって、ブラウザーで 1 つのドメイン名に対して Cookie が設定されている場合、その Cookie は他のドメイン名に対しては無効になります。ユーザーがいずれかのサイトからログインし、他のドメイン名からもログインできるようにしたい場合、これは大きな問題になる可能性があります。 私のソリューションでは、次の一般的なフレームワークを使用します。 事前に構築されたスクリプトを使用して、GET または COOKIE を通じて渡されたセッション ID 番号を受け入れます。 COOKIE よりも GET 変数が優先されます。したがって、クロスドメイン名を参照する必要がある場合は常に、URL パラメータとして sessionid を送信します。 Apache 構成を変更して、すべてのクロスドメイン名 Cookie を書き換えます。その理由はすぐに明らかになるでしょう。 クロスドメイン参照が発生するときは常に変数を使用します。 ステップ 1: プリセット スクリプトを作成します。次のコードをプリセット スクリプトに追加します (または、すべてのスクリプトの前に関数に追加します)。 このコードが実行されると、スクリプトでグローバル sessionid 変数が使用できるようになります。ユーザーの Cookie に sessionid 値、または GET リクエストを通じて送信された sessionid 値が保存されます。 ステップ 2: すべてのクロスドメイン名参照に変数を使用する グローバル構成ファイルを作成して、切り替え可能なドメイン名の基本的な参照形式を保存します。たとえば、domain1.com と domain2.com がある場合、次のように設定されます: コード内で次のように設定すると、次の出力が生成されます: Click here to contact us ここにセッション ID が挿入されています。 URL に入りました。 この時点で、「Web サーバー上で、horizo​​ntal Lines、sessionid、horizo​​ntal Lines という名前のサブディレクトリが開かれる可能性がある?!?!?」と思うかもしれません。 ただし、次の手順では、これを機能させるために必要なコツを説明します。 ステップ 3: Apache を構成する。残りの手順は、この URL を書き換えるように Apache を構成することです: http://www.domain2.com/- 66543afe6543asdf6asd-/contact/次のようになります: http://www.domain2.com/contact/?sessionid=66543afe6543asdf6asd この URL: http://www.domain2.com/-66543afe6543asdf6asd-/contact/?email=yes 次のようになります: http ://www.domain2.com/contact/?email=yes&sessionid=66543afe6543asdf6asd これを実現するには、次のように 2 つの仮想サーバーをドメイン 1 とドメイン 2 として構成するだけです: DocumentRoot /usr/local/www /domain1 ServerName www.domain1. com RewriteRule の RewriteEngine ^/-(.*)-(.*?.*)$ $2&sessionid=$1 [L,R,QSA] RewriteRule ^/-(.*)-(.* )$ $2?sessionid=$1 [L,R,QSA] DocumentRoot /usr/local/www/domain2 ServerName www.domain2.com RewriteRule の RewriteEngine ^/-(.*)-(.*?.*)$ $2&sessionid=$1 [L, R,QSA] RewriteRule ^/-(.*)-(.*)$ $2?sessionid=$1 [L,R,QSA] これらの書き換えルールは、上記の 2 つの URL 書き換えリクエストを実装します。 結論 クロスドメイン Cookie は、Apache の書き換え機能と組み合わせた変数を使用することで簡単に実装できます。このようなシステムを維持したい場合は、クロスドメイン名をリンクするときは常に、ドメイン名変数を使用する以外は何も使用しません。 Cookie は正常に機能するため、ドメイン名内のリンクを変更する必要はありません。 運用ネットワークでのシステムの動作を確認したい場合は、http://www.familyhealth.com.au/ にアクセスしてください。いくつかのクロスドメイン リンクの上にマウスを移動し、クリックしたときにリンクがどのように書き換えられるかを確認します。 おそらく、このテクノロジーを使用する場合の唯一の問題は、ユーザーのブラウザーにあるすべてのドメイン名の Cookie を削除できないことです。 転載元: PHPBuilder.com

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/531774.html技術記事著者: Christopher Kings-Lynne 翻訳: limodou Cookie は本当に素晴らしい発明で、Web 開発者はユーザーのログイン状態を保持できます。ただし、サイトまたはネットワークに...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。