1

ユーザーが自分の Web サイトにファイルをアップロードできるようにする SWF ファイルがあります。その SWF は私のサーバーに POST リクエストを送信upload.phpし、ファイルをアップロードします。

しかし、そうする前に、upload.php で、これを行っている人物がsigned in. このために、現在、SID cookie valueリクエストヘッダーで送信されたものをチェックし、データベースのそのSID値に対してエントリをチェックします(データベースにセッションを保存します)。私はうまく機能しますが、リクエストが SWF によって生成されたときに Cookie ヘッダーを送信しないためchrome、失敗します。firefox

どうすればいいですか。手伝ってくれてありがとう。

Chrome で送信されるヘッダー

Content-Length: 355894
Origin: http://localhost 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52
Content-Type: multipart/form-data; boundary=----------ei4Ij5ae0ae0ei4Ef1Ef1KM7GI3Ef1 
Accept: */* 
Referer: http://localhost/home Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Cookie: PHPSSID = 238e320eewbjdbew923e092ejhwbjhwebd

FireFox で送信されるヘッダー

Accept: text/* 
Content-Type: multipart/form-data; boundary=----------GI3Ef1Ef1ae0GI3cH2Ef1Ef1cH2KM7 
User-Agent: Shockwave Flash 
Host: localhost 
Content-Length: 355894 
Connection: Keep-Alive 
Cache-Control: no-cache
4

1 に答える 1

0

これはChromeの機能ですが、FireFoxのバグではありません。SWFをアップロードするには、ブラウザのCookieを明示的に送信する必要があります。バージョン3.0以降のFancyUploadを見てください。

また、User-Agentヘッダーがブラウザーと等しくない場合、suhosinを使用するPHPはセッション変数を削除できることに注意してください。これは「セッション修正」と呼ばれます。したがって、SWFをアップロードするには、リクエスト中にもブラウザにUser-Agentを送信する必要があります(または、suhosinパッチを無効にするだけです)。

于 2013-01-22T00:40:55.973 に答える