Apacheサーバのセットアップことが 問題に関連している場合example.comの 要求はクライアントブラウザ アドレスバーに www.example.comとして表示するようなのですか?
私は100%確信していませんが、これは問題の根本に似ています。どのようにして、Apacheはクライアントブラウザにexample.comの代わりにwww.example.comを表示させるのですか?ほとんどの場合、example.comの各リクエストをwww.example.comにリダイレクトします。ブラウザがリダイレクトを処理すると、www.example.comのリクエストが送信され、その時点からwww.example.comと連携していると考えられます。
ここで、レスポンスヘッダーにSet-Cookieがあるとどうなりますか?それは明らかにwww.example.comからのものとして扱われます。セキュリティ上の問題があるため、ブラウザがそのようなCookieのドメインを.example.comに設定する方法はありません。 mysite.somefreehosting.comがドメイン.somefreehosting.comのクッキーを設定したとします。その後someothersite.somefreehosting.comはこのCookieを受け取り、多くの問題を引き起こす可能性があります。標準ではそのようなクッキーを拒絶するように指定していますが、そのようなケースを扱い、.example.comをwww.example.comとして扱うのに十分なスマートなブラウザがあれば、私は驚くことはありません。
確かに、lwp-requestスクリプトなどのリクエストを送信することで、サイトがブラウザに送信する内容を確認することをお勧めします。 /; HTTP> - GET:
[email protected]:~$ lwp-request -sSed http://google.com/
GET http://google.com/ --> 301 Moved Permanently
GET http://www.google.com/ --> 302 Found
GET http://www.google.co.il/ --> 200 OK
Cache-Control: private, max-age=0
Connection: close
Date: Sat, 18 Dec 2010 18:54:57 GMT
Server: gws
Content-Type: text/html; charset=windows-1255
Content-Type: text/html; charset=windows-1255
Expires: -1
Client-Date: Sat, 18 Dec 2010 18:54:57 GMT
Client-Peer: 173.194.37.104:80
Client-Response-Num: 1
Set-Cookie: PREF=ID=368e9cfd56643257:FF=0:TM=1292698497:LM=1292698497:S=s-Jur84NgaNH5Mzx;
expires=Mon, 17-Dec-2012 18:54:57 GMT; path=/; domain=.google.co.il
Set-Cookie: NID=42=bZ6goDV_b2MiWlTMONwiijaON5U_TBGB2_yNheonEwA1GVLU77EhyfUhk9Wvj70xTFrpvGy4s_aBp1UZtvRRnsnYjacjz_UVx0_iSr9R3nYXMyRtwkS5qV98_Egb16pZ;
expires=Sun, 19-Jun-2011 18:54:57 GMT; path=/; domain=.google.co.il; HttpOnly
Title: Google
X-XSS-Protection: 1; mode=block
私はその要求を送信してチェックし、私はグーグルとGETの同じシーケンスを取得する:あなたはこのように、起こっているとどのようなヘッダは、実際に応答して設定されているものをリダイレクト表示されます/example.com 301 Moved Permanently http; // www.example.com GET - > 302 Moved Temporarily GET http://www.example.com/user/uid - > 200 OK。唯一の違いGoogleは302 Foundです。 –
メッセージは重要ではありません。コードはすべて重要です。最後のURLはSOエンジンで解析されましたが、http:// www.example.com/user/uidとしますか?この場合、セキュリティ上の理由から.example.comのCookieを設定することはできません。とにかくそれをどうして望みますか? –
申し訳ありませんが、私はhttp; // www.example.com/user/uidを意味していました。 linuxコマンドlwpはクッキーを受け入れないので、私のコードはhttp; // www.example.com/user/uidにリダイレクトされ、これは予想通りです。しかし、クッキーがクライアントブラウザで有効になっている場合、このリダイレクトは行われません。私のgrailsアプリケーションはURLマッピングを持っていて、 '/'へのリクエストはexample.comへのリクエストを意味します(ユーザ認証/クッキーチェックのためにexample.com/user/indexに自動的にリダイレクトされます)。私はgrailsがこれを内部的にどうやってリダイレクトするのか分からない。 –