0

XSS/COR は Apache Web サーバーから許可されており、クエリ文字列パラメーターを使用して正常に呼び出しを行うことができます。

私が聞いたRESTfulサービスはOAuthを使用しています。

RESTful Web サービスへの呼び出しは、Composer を介して Fiddler で簡単に実行でき、有効な JSON データを返します。Authorization ヘッダーを 1 つ設定しましたが、Fiddler Composer で送信した場合と Ajax でヘッダーを設定した場合では、リクエストがまったく異なって見えます。

Accept および Access-Control-Allow-Origin ヘッダーの有無にかかわらず試してみました。

これは、Composer で要求を実行した後の Fiddler からの要求ヘッダーです。

GET {/trailing server URL} HTTP/1.1
Cookies / Login
    Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Transport
    Host: {server URL}

これが私の Ajax リクエストです

$(function () {
    var token = "Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";

    $.ajax({
        url: url,
        dataType: "json",
        headers: {
            "Access-Control-Allow-Origin": "*", Accept: "application/json", Authorization: token
        }
        //,
        //beforeSend: function (jqXHR) {
        //jqXHR.setRequestHeader("Access-Control-Allow-Origin", "*");
        //jqXHR.setRequestHeader("Accept", "application/json");
        //jqXHR.setRequestHeader("Authorization", token);
        //}
    })
        .success(function (data) {
            console.log("success");
        })
        .fail(function (jqxhr, textStatus, error) {
            console.log("Error - textStatus = " + textStatus + " , error = " + error);
        });
});

これは、私の Ajax ブラウザ リクエストから Fiddler を介してキャプチャされた HTTP リクエスト ヘッダーです。

OPTIONS {trailing server URL} HTTP/1.1
Client
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Encoding: gzip, deflate
    Accept-Language: en-US,en;q=0.5
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
Cookies / Login
    DNT: 1
Miscellaneous
    Access-Control-Request-Headers: access-control-allow-origin,authorization
    Access-Control-Request-Method: GET
    Origin: {local machine URL}
Transport
    Connection: keep-alive
    Host: {server URL}

Fiddler Composer ヘッダーのように、AJAX 要求ヘッダーに「GET」ではなく「OPTIONS」が表示されるのはなぜですか?

Fiddler Composer ヘッダーの Cookies / Login セクションに Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 値が表示されるのはなぜですか?

トークンはブラウザーで表示できるため、JavaScript コードに保持するべきではないと聞いています (実際には、トークンはハードコーディングされず、変数として渡されます)。他にどのようにトークンを渡し、安全に保つことができますか?

4

0 に答える 0