背景:
CakePHP は、PHPSESSID の他に独自のセッション ID Cookie を書き込みます。これは、リクエストを認証するために使用されます。次に、SWFupload がファイルと認証するトークンを送信し、新しいユーザー エージェントとして取得されます。そのため、cakephp で「check-user-agent」セキュリティ機能を無効にする必要があります。
多くのブラウザではこれで十分です。IE7 版と SWF 版では、このバグとの関連はないようです。私たちの場合、IE7 は同じ Cookie の 2 つのバージョンを保存/送信していました。では、最初の質問はなぜですか?どのように?
さらなる説明:
これらの重複した Cookie はヘッダー文字列の最初と最後に保存されるため、PHP/Cake は一方の端を受け取り、一方が「選択」され、swfobject で設定して送信した手動の Cookie がもう一方の Cookie になります。これを修正するためのいくつかのハックを考えることができますが、そもそもこの状態がどのように発生するかを知りたいです.
また、CakePHP は、ログアウトとログイン時に一意の CakeSession ID を生成しないようです。これが原因である可能性があります。解決策は、cake に強制的に PHPSESSID を使用させるか、swfupload が正しい SESSID を送信するようにすることです...
編集 1: CakePHP によって送信される Cookie のヘッダーは次のとおりです。
Set-Cookie: CAKEPHP=gqlpa88blmhmdsmv9e99ga16b3; expires=Thu, 13-Aug-2009 13:21:02 GMT; path=/
Set-Cookie: CAKEPHP=deleted; expires=Wed, 06-Aug-2008 13:21:01 GMT; path=/
Set-Cookie: CAKEPHP=ob5695trnspprlohiunrpqgkm0; expires=Thu, 13-Aug-2009 13:21:02 GMT; path=/
どんなアイデアでも大歓迎です!