2

昨日まですべてが機能していましたが、何ヶ月も機能しています。XSS 攻撃の防止に言及した apache セキュリティ アップデートの後、動作を停止しました。

私はこれに何時間も費やしましたが、何が悪いのかわかりません。以下のヘッダーからわかるように、Chrome はプリフライト情報を要求し、apache は応答し、chrome は次のように言います。

XMLHttpRequest はhttp://neo.octomobi.com/plupload/upload_gallery.phpを読み込めません。Origin http://www.octomobi.comは Access-Control-Allow-Origin で許可されていません。

何か案は?プリフライトに対するApacheの回答の何が問題になっていますか??

Request URL:http://neo.xxx.com/xxxx/xxxx (domain hidden by me for security)
Request Method:OPTIONS
Status Code:200 OK

リクエスト ヘッダー

Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Access-Control-Request-Headers:origin, content-type
Access-Control-Request-Method:POST
Host:neo.xxxx.com
Origin:http://www.xxxx.com (hidden by me)
Proxy-Connection:keep-alive
Referer:http://www.xxxx.com/xxx/xxxx (hidden by me)
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11

応答ヘッダー

Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Origin:*
Allow:GET,HEAD,POST,OPTIONS
Connection:Keep-Alive
Content-Length:0
Content-Type:text/html
Date:Mon, 12 Nov 2012 11:47:17 GMT
Keep-Alive:timeout=5, max=100
Proxy-Connection:Keep-Alive
Server:Apache/2.2.20 (Ubuntu)
Via:1.1 FTHW937X
X-Powered-By:PHP/5.3.6-13ubuntu3.9
4

2 に答える 2

0
<?php header('Access-Control-Allow-Origin: *'); ?>

Header set Access-Control-Allow-Origin * 設定を apache conf または htaccess ファイルに配置するだけで機能します または、次の手順を実行します

<ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
</ifModule>
于 2012-11-12T12:01:21.727 に答える
0

試行錯誤の末、やっと出来上がりました。

それから私が理解していることは、何らかの理由でApacheが A​​ccess-Control-Allow-Origin: * をプリフライトリクエストでのみ送信していて、実際のリクエストでは送信していないということです。プリフライトと実際のリクエストの両方に存在する必要があります。存在しない場合、CORS は失敗します。

そして、Apache 構成ファイルと htaccess に Header set Access-Control-Allow-Origin: * を設定していても、それは起こっています (ちなみに、この Apache パッチを適用するまでは機能していました)。

だから私が見つけた解決策は、header('Access-Control-Allow-Origin: *'); を明示的に配置することでした。PHPリターンで。それを含めるために多くのファイルを変更する必要があったため、理想的ではありません。そもそもなぜ機能しなくなったのかを突き止めたかったのです。しかし、少なくとも今は機能しています。

于 2012-11-12T22:14:04.690 に答える