2017-10-17 14 views
0

デスクトップでクライアントが直接行ったajaxリクエストをしたいと思います。AJAXリクエストでapiキーを非表示にする方法

問題は私のajaxリクエストには「秘密のAPIキー」が必要です。私は、クライアントがこのapiキーにアクセスすることを望んでいません。

ここに私の現在のjsコード:

var url = 'myurl';     
    var obj = new Object(); 
    obj.api_key   = "myKeyIwantToHide"; 
    $.ajax({ url: url, 
       type: 'post', 
       dataType: 'json', 
       data: obj, 
       cache: false, 
       success: function(result){ 
        alert(result); 
       } 
    }); 

私のAJAX要求を行わせるためにはJavaScriptを使用してクライアントに情報を非表示にすることも可能です。

Thxを、 クリストフ

+7

JavaScriptクライアント側で何も非表示にすることはできません。 – Roberrrt

+3

クライアントに送信された場合、クライアントはアクセス権を持ちます。鍵の秘密を保持する必要がある場合は、自分のサーバー上にプロキシを作成する必要があります。 – Pointy

+0

サーバの制御権を持っている場合は、認証にJWTを使用する必要があります。 – Baruch

答えて

-1

あなたがクライアントから完全にAPIキーを隠すことができません。しかし、クライアントが技術的でない場合。あなたは彼/彼女がAPIキーを見つけるのを難しくすることができます。 MVCを使用している場合は、最初のリクエストがIndexメソッドに送信されたときにapiキーを設定し、戻ったらjavascript変数に設定できます。このようにして、ユーザはあなたが示したコードとは異なり、ハードコードされた値を見ることができません。 ASP.NETを使用している場合は、ViewBagを使用して、JavaScriptの変数に値を設定することができます。

+0

「あなたのクライアントが技術的でない場合」のようなものを想定しています。ちょっとプログラミングの間に悪い習慣です... –

関連する問題